角谷猜想,想必许多人都听过吧!
今天,我们就要用c++来解决角谷猜想,是不是感觉有点难?
我们一起来看看吧!!!
题目
角谷猜想又称冰雹猜想,任意写出一个自然数 n,并且按照以下的规律进行变换:
如果是个奇数,则下一步变成 3n+1;
如果是个偶数,则下一步变成 n/2;
则这个运算最后结果都会为 1。
你认为这个猜想正确吗?同学们可以尝试想办法去检验。
输入
一个自然数 n。
输出
第一行输出变换的次数。
接下来一行按照变换顺序输出每次变换以后的值,每两个数中间用一个空格隔开(输出包含初始的数)。
样例
输入
22
输出
15 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
提示
数据范围
1≤n<10^9
#includeusing namespace std; int main(){ long long n,cnt=0;//long long类型,请看数据范围你就明白了 cin>>n;//输入 long long m=n; while(n!=1){ if(n%2==1){ n=n*3+1; cnt++;//个数+1 }else{ n=n/2; cnt++;//个数+1 } }//开始循环,注意,循环的是次数 cout< 思路就在代码里面了,如果还有更简单的方法,请在下方评论!!!
最后说一句,我是一名才学两年c++的小学生,请不要抄袭代码!!!
效果显示:



