go语言中没有while循环,取而代之的是for循环。
不要用这种for n!=1 {}
,最好用这种for n > 1 {}
,虽然是细节,但是这样的逻辑判断更加流畅
package main
import "fmt"
func main() {
var n, count int
fmt.Scan(&n)
for n > 1 {
if n%2 == 0 {
n = n / 2
count++
} else {
n = 3*n + 1
n /= 2
count++
}
}
fmt.Print(count)
}