C 知道
#include<stdio.h>int main(){int n,count;scanf("%d",&n);do{if(n%2==0){n=n/2;count++;}else {n=3*n+1;count++;}}while (n==1);printf("%d",count);return 0;
}
收起
while(n==1)这里错了,应该改为while(n!=1)你的原代码如果输入的n的值不等于1的话,那么输出的结果将一直是1因为do whlie 至少执行一次do语句,你的while(n==1)意思是如果n==1为真则执行while循环,如何为假则调出while循环
#include<stdio.h> int main(){ int n,count; scanf("%d",&n); do{ if(n%2==0){ n=n/2; count++;} else { n=3*n+1; count++;} } while (n!=1); printf("%d",count); return 0; }
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!