题目描述
任何一个自然数,如果是偶数,就除以 2,如果是奇数,就乘以 3 再加 1。最后,经过若干次迭代得到 1。也就是说,不管怎样迭代,不断除以 2 以后,最后是 1。现在给你一个自然数 n,求出它转变为 1 所需要的步数。
输入描述
输入数据有多组,每组输入包含一个自然数 n。测试数据保证输入数据及中间结果都在 int 范围内。
输出描述
对每组输入,输出经过角谷猜想变成 1 的步数。
输入样例
5
11
输出样例
5
14
#include<stdio.h>
int main()
{
int n,steps;
while(scanf("%d",&n) != EOF)
{
steps = 0;
while(n != 1)
{
if(n % 2 == 0)
n = n / 2;
else
n = n * 3 + 1;
steps++;
}
printf("%d\n",steps);
}
return 0;
}