一开始我是这么写的,而后我发现第一个数存错了,总是会变成 2
int main(){
int a[1000];
int n,i=1;
scanf("%d",&n);
while(1){
a[0]=n;
if(n%2==1){
n=n*3+1;
a[i]=n;
}else{
n=n/2;
a[i]=n;
}
if(a[i]==1) break;
++i;
}
for(int j = i;j >= 0;--j){
printf("%d ",a[j]);
}
return 0;
}
然后我就想了个歪招
int main(){
int a[1000];
int n,i=0;
scanf("%d",&n);
int k = n;
while(1){
if(n%2==1){
n=n*3+1;
a[i]=n;
}else{
n=n/2;
a[i]=n;
}
if(a[i]==1) break;
++i;
}
for(int j = i;j >= 0;--j){
printf("%d ",a[j]);
}
printf("%d",k);
return 0;
}
但是还是只有80分,第三个错了