#include <stdio.h>
/*
思路:
读入题目给出的n,使用while循环反复判断n是否为1
①如果n为1,则退出循环。
②如果n不为1,则判断n是否为偶数,如果是偶数则令n除以2;否则令n为(3*n + 1)/2
之后令计数器cnt加1,循环退出时,计数器的值就是答案。
*/
int main()
{
int i;
int x, cnt = 0;
scanf("%d",&x);
while (x != 1)
{
if (x % 2 != 0) //只会有一个执行,cnt++只需要在最后即可
{
x = (3 * x + 1) / 2.0;
}
else
{
x = x /2;
}
cnt++;
}
printf("%d\n", cnt);
return 0;
}
1001. 害死人不偿命的(3n+1)猜想 (15)
最新推荐文章于 2021-09-22 10:32:07 发布