go-考拉滋猜想
package main import ( "fmt" "time" ) func main() { collatz(9) w := 1 for { fmt.Println(w) collatz(w) w++ if w == 10 { break } } } func collatz(z int) { t1 := time.Now() x, y := 1, z for { if z == 1 { fmt.Println("初始数字: ", y, ", 运算次数: ", x, ", 最终结果: ", z) break } x++ switch a := z % 2; { case a == 0: z = z / 2 default: z = z*3 + 1 } if z == 1 { fmt.Println("初始数字: ", y, ", 运算次数: ", x, ", 最终结果: ", z) break } } elapsed := time.Since(t1) fmt.Println("耗时: ", elapsed) }
浙公网安备 33010602011771号