对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次这样的变化。一定会使n变为1。
例如:3-->10-->5-->16-->8-->4-->2-->1
输入n,输出变换的次数。n<=109
样例输入:3
样例输出:7
//注意定义变量 n 应为 long long 型,若定义成 int 型,则数据越界,结果错误
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
long long n;
while(cin>>n)
{
int count=0;
while(n!=1)
{
if(n%2==0)
n/=2;
else
n=n*3+1;
count++;
}
cout<<count<<endl;
}
return 0;
}
原文:http://www.cnblogs.com/Aftersoon-sun/p/6270450.html