题目:
猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一般一半。
经过若干次这样的变换。
例如:3->10->5->16->8->4->2->1
输入n,输出变换次数。n<=109
样例输入
3
样例输出
7
注意:
输入n的范围(n<=109),该数字很大。用int型的变量接收会溢出,建议使用long long。
代码:
#include<iostream>
using namespace std;
void main()
{
int count = 0;
long long n;
cin >> n;
while (n > 1)
{
if (n % 2 == 1)
{
n = 3 * n + 1;
count++;
}
else
{
n = n / 2;
count++;
}
}
cout << count << endl;
}