储存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";
}
04-10 04:39