题目描述
对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3 * n + 1后砍掉一半,直到该数变为1为止。
请计算需要经过几步才能将n变到1,具体可见样例。输入
包含多个测试数据,每个测试数据包含一个整数n,当n为0 时表示输入结束。(1 <= n <= 10000)。
输出
对于每组测试数据请输出一个数,表示需要经过的步数,每组输出占一行。
样例输入 复制
3 1 0
样例输出 复制
5 0
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if (n == 0)
break;
int step = 0;
while (n != 1)
{
if (n % 2 == 0)
n /= 2;
else
n = 3 * n + 1;
step++;
}
printf("%d\n", step);
}
return 0;
}