题目描述
你听说过角谷猜想吗?
任意的正整数,比如 5,我们从它开始,如下规则计算:
如果是偶数,则除以2;如果是奇数,则乘以 3 再加 1。
如此循环,最终必会得到 1!
比如 5 的处理过程是:
5 16 8 4 2 1
一个正整数经过多少步才能变成 1, 称为角谷步数。
对于 5 而言,步数也是 5。
对于 1,步数为 0。
代码实现:
#include<stdio.h>
int hanshu();
int hanshu(int x)
{int bu=0;while(x!=1){if(x%2==0){x=x/2;bu++;}else if(x%2!=0){x=x*3+1;bu++;}}return bu;
}
int main()
{int zhengshu;scanf("%d",&zhengshu);if(zhengshu==0){printf("1");}elseprintf("%d",hanshu(zhengshu));return 0;
}