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 }