这道题,由于他要倒序输出,所以我们务必要使用数组
我的想法是将输入存入a[0],然后将一直变化的量n进行如下操作:
n=a[0];
此后进入for循环,判断:
if(a[i]%2==1){
a[i+1]=a[i]*3+1;
n=n*3+1;
}else{
a[i+1]=a[i]/2;
n/=2;
}
最后倒序输出,代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[1001],i;
cin>>a[0];
int n=a[0];
for(i=0;n>1;i++){
if(a[i]%2==1){
a[i+1]=a[i]*3+1;
n=n*3+1;
}else{
a[i+1]=a[i]/2;
n/=2;
}
}
for(int j=i;j>=0;j--){
cout<<a[j]<<" ";
}
return 0;
}
点个赞,谢啦?