这道题难度不大,基本可以说是送分。
但是在做的时候第一次提交出现了答案错误。
#include <stdio.h>
int main()
{
int n, count;
count = 0;
scanf("%d",&n);
while(n){
if(n%2==0){
n=n/2;
}else{
n = (3 * n + 1)/2;
}
count++;
if(n==1){
break;
}
}
printf("%d",count);
return 0;
}
反复验证了一下,猜测可能是由于最开始输入的数据就为1的特殊例子导致的,故修改了代码如下:
#include <stdio.h>
int main()
{
int n, count;
scanf("%d",&n);
count = 0;
while(n){
if(n==1){
break;
}
if(n%2==0){
n=n/2;
}else{
n = (3 * n + 1)/2;
}
count++;
}
printf("%d",count);
return 0;
}