首先 根据题目要求 就是
if else
的双选择类型,最开始选择的是do while
循环 提交时发现最后一个测试答案错误 只有一处错误那应该就是临界值的问题 尝试后发现 使用do while
会先无条件进入循环 那样就导致原本可以直接输出count=0
的1结果错误 换成while
就解决了这个问题
感觉这道题还可以使用递归 等有空补上
`#include<stdio.h>
int main(){
int num, count=0;
if(scanf("%d",&num)){
if(num<=1000&&num>0){
while(num!=1){
if(num%2==0){
num/=2;
} else {
num=(3*num+1)/2;
}
count++;
}
printf("%d",count);
}
return 0;
}
}