#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;
}
#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;
}