害死人不偿命的(3n+1)猜想
对任何一个正整数n,如果他是偶数,那么把他砍掉一半,如果他是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。对给定的任一不超过1000的正整数n,简单的数一下,需要多少步(砍几下)才能得到n=1。
输入格式:
每个测试输入包含1个测试用例,即给出正整数n的值
输出格式:
输出从n计算到1需要的步数
#include <iostream>
using namespace std;
int main()
{
int n;
int count = 0;
cin >> n;
while(n!=1){
if(n%2 == 0){
n /= 2;
}else{
n = (3*n+1)/2;
}
count++;
}
cout << count <<endl;
}