角谷猜想,计算第一次出现1经过了几次操作

题目描述

70年代中期,美国各所名牌大学校园内,人们都像发疯一般,夜以继日,废寝忘食地玩弄一种数学游戏。这个游戏十分简单:任意写出一个自然数N,并且按照以下的规律进行变换:
如果是个奇数,则下一步变成3N+1。
如果是个偶数,则下一步变成N/2。
不单单是学生,甚至连教师、研究员、教授与学究都纷纷加入。为什么这种游戏的魅力经久不衰?因为人们发现,无论N是怎样一个数字,最终都无法逃脱回到谷底1。准确地说,是无法逃出落入底部的4-2-1循环,永远也逃不出这样的宿命。
这就是著名的“冰雹猜想”。
现在给定数a,求将a进行几次操作后第一次出现1。(CCF入门P142)

输入示例1

6

输出示例1

9

题解

#include 
using namespace std;

int main() {
    int n, count = 1;
    scanf("%d", &n);
    do {
        if(n % 2 == 0) n /= 2; else n = 3 * n + 1;
        count++;
    } while(n != 1);
    printf("%d", count);
    return 0;
}

你可能感兴趣的:(题解)