题目描述
考拉兹猜想(Collatz conjecture)又称奇偶归一猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2。
如此循环,最终都能得到1。编写一个程序,输入一个正整数,打印其考拉兹序列。
输入格式
一个大于1的正整数n,n<109
输出格式
以逗号分隔的考拉兹序列。
样例 #1
样例输入 #1
5
样例输出 #1
16,8,4,2,1
提示
通过乘法是无法得到1的,因此如果猜想正确,倒数第2个数一定为2
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<iostream>
using namespace std;
int main(){
long long n;
cin>>n;
while(n!=2){
if(n%2!=0){
n=n*3+1;}
else{
n=n/2;
}
cout<<n<<',';
}
cout<<1;//当n==2时直接以1结尾
return 0;
}