You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
670 B
37 lines
670 B
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// 计算 number 每一位的平方和
|
|
func calcSquares(number int, squareop chan int) {
|
|
sum := 0
|
|
for number != 0 {
|
|
digit := number % 10
|
|
sum += digit * digit
|
|
number /= 10
|
|
}
|
|
squareop <- sum // 将结果发送给信道 squareop
|
|
}
|
|
|
|
func calcCubes(number int, cubeop chan int) {
|
|
sum := 0
|
|
for number != 0 {
|
|
digit := number % 10
|
|
sum += digit * digit * digit
|
|
number /= 10
|
|
}
|
|
cubeop <- sum
|
|
}
|
|
|
|
func main() {
|
|
number := 598
|
|
squareop := make(chan int)
|
|
cubeop := make(chan int)
|
|
go calcSquares(number, squareop)
|
|
go calcCubes(number, cubeop)
|
|
squares, cubes := <-squareop, <-cubeop
|
|
fmt.Println("Final output", squares+cubes)
|
|
}
|