github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/develop/dev10/main.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  /*
     6  Дана последовательность температурных колебаний: -25.4, -27.0 13.0, 19.0, 15.5, 24.5, -21.0, 32.5.
     7  
     8  	Объединить данные значения в группы с шагом в 10 градусов.
     9  	Последовательность в подмножноствах не важна.
    10  
    11  	Пример: -20:{-25.0, -27.0, -21.0}, 10:{13.0, 19.0, 15.5}, 20: {24.5}, etc.
    12  */
    13  func main() {
    14  	deg := []float64{-25.4, -27.0, 13.0, 19.0, 15.5, 24.5, -21.0, 32.5, 65.4, -44.3, -3.0}
    15  	groups := make(map[int][]float64)
    16  	for _, v := range deg {
    17  		name := groupValue(v)
    18  		group, ok := groups[name]
    19  		if !ok {
    20  			groups[name] = make([]float64, 0)
    21  			groups[name] = append(groups[name], v)
    22  		} else {
    23  			group = append(group, v)
    24  			groups[name] = group
    25  		}
    26  
    27  	}
    28  	fmt.Println(groups)
    29  
    30  }
    31  func groupValue(v float64) int {
    32  	toInt := ((v * 10) / 100)
    33  	groupname := int(toInt) * 10
    34  	return groupname
    35  }