题目描述
你听说过角谷猜想吗?
任意的正整数,比如 5,我们从它开始,如下规则计算:
如果是偶数,则除以2;如果是奇数,则乘以 333 再加 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");
}
else
printf("%d",hanshu(zhengshu));
return 0;
}
标签:角谷,hanshu,int,C语言,bu,printf,zhengshu,步数
From: https://blog.csdn.net/2302_80061080/article/details/137245033