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

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"math"
     6  	"sync"
     7  )
     8  
     9  /*
    10  Дана последовательность чисел: 2,4,6,8,10. Найти сумму их квадратов(22+32+42….) с использованием конкурентных вычислений.
    11  */
    12  
    13  func main() {
    14  	wg := &sync.WaitGroup{}
    15  	numbers := []int{2, 4, 6, 8, 10}
    16  	result := 0.0
    17  	for i := 0; i <= len(numbers)-1; i++ {
    18  		number := numbers[i]
    19  		wg.Add(1)
    20  		go func(int, float64) {
    21  			defer wg.Done()
    22  			res := math.Pow(float64(number), 2)
    23  			result += res
    24  		}(number, result)
    25  		wg.Wait()
    26  	}
    27  
    28  	fmt.Printf("result: %v\n", result)
    29  
    30  }