题目描述
给定一个正整数 𝑛n,若 𝑛n 是偶数,将 𝑛n 的值减少一半,如果 𝑛n 是奇数,将 𝑛n 的值乘 33,再加 11。不断地重复这个操作,任何正整数最后都会变成 11。这个猜想很可能是正确的,因为借助计算机,尚未发现存在反例。
给定 𝑛n,请输出用上述操作将 𝑛n 变成 11 的过程。
输入格式
单个整数表示 𝑛n。
输出格式
若干整数,表示用角谷变换将 𝑛n 变成 11 的过程。
数据范围
2≤𝑛≤500002≤n≤50000
样例数据
输入:
13
输出:
40 20 10 5 16 8 4 2 1
输入:
7
输出:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
详见代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a, b=1, c=0;
cin >> a;
while(a>1)
{
if(a%2==0)
{ a=a/2;
cout << a<<" ";
}
else
{ a=a*3+1;
cout << a << " ";
}
}
return 0;
}