角谷猜想
内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定一个正整数 n,若 n 是偶数,将 n的值减少一半,如果 n是奇数,将 n 的值乘 3,再加 1。不断地重复这个操作,任何正整数最后都会变成 1。这个猜想很可能是正确的,因为借助计算机,尚未发现存在反例。
给定 nn,请输出用上述操作将 n 变成 1的过程。
输入格式
单个整数表示 n。
输出格式
若干整数,表示用角谷变换将 n 变成 13131 的过程。
数据范围
2≤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 n;
cin>>n;
if(n<=2000000&&n!=1)
do//do while 语句 下面进行判断
{
if(n%2==1)//判断条件
{
cout<<n*3+1<<' ';
n=n*3+1;
}
else
{
cout<<n/2<<' ';
n=n/2;
}
}while(n!=1);//循环判断
return 0;
}