储存n:
jishu++;
k[jishu]=n;
如果n是2的倍数,n除以二:
if(n%2==0){
n/=2;
}
否则就乘三加一:
else{
n=n*3+1;
}
循环到他变成一:
while(n!=1){
jishu++;
k[jishu]=n;//储存n
if(n%2==0){
n/=2;
}//如果n是2的倍数,n除以二;
else{
n=n*3+1;
}//否则就乘三加一
}
最后输出:
for(int i=jishu;i>=1;i--) cout<<k[i]<<" ";
源代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,f=1,jishu=0,k[100000];
cin>>n;
cout<<1<<" ";
while(n!=1){
jishu++;
k[jishu]=n;//储存n
if(n%2==0){
n/=2;
}//如果n是2的倍数,n除以二;
else{
n=n*3+1;
}//否则就乘三加一
}//循环到他变成一
for(int i=jishu;i>=1;i--) cout<<k[i]<<" ";//最后输出
return 0;
}
源代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
int main(){
int a;
cin>>a;
while(a!=1){
if(a%2!=0){
cout<<a<<"*3+1="<<a*3+1<<endl;
a=a*3+1;
}
if(a%2==0){
cout<<a<<"/2="<<a/2<<endl;
a=a/2;
}
}
cout<<"End";
}