有这样一个猜想:对于任意大于1的自然数n,若n为奇数,则将n变成3n+1,否则变成n的一半。经过若干次这样的变换,一定会使n变为1。例如3->10->5->16->8->4->2->1。对于n=1的情况,当然就不用变化了。
输入格式:
输入一个正整数n,n的范围是[1,999999]。
输出格式:
输出变换的次数。
输入样例:
3
输出样例:
7
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int n=0;
scanf("%d",&n);
int i=0;
while(n!=1)
{
if(n%2==0)
{
n/=2;
i++;
}
else
{
n=3*n+1;
i++;
}
}
printf("%d",i);
return 0;
}