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)
}

 

posted on 2020-04-06 01:44  vijayfly  阅读(142)  评论(0)    收藏  举报

导航