小白初始学习中,请指教~
题目:对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?
输入格式:
每个测试输入包含 1 个测试用例,即给出正整数 n 的值。
输出格式:
输出从 n 计算到 1 需要的步数。
输入样例:
3
输出样例:
5
思路:重点在于输入的整数n需要砍几下变为1,若是奇数不能直接砍,需先进行3*n+1处理,使其变为偶数。
C代码:
int n,count = 0;
scanf("%d",&n);
while(n!=1){
if(n%2!=0){
n = 3*n+1;
}
n/=2;
count++;
}
printf("%d",count);
}