2-2 3n+1问题

猜想:对于任意大于1的自然数你,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次变换,一定会使n变为1。
例如,3->10->5->16->8->4->2->1。输入n,输出变换的次数。n<=10^9。
样例输入:
3
样例输出:
7

 1 #include<stdio.h>
 2 int main()
 3 {
 4 int n1;
 5 scanf("%d",&n1);
 6 __int64 n=n1;
 7 for(int i=1;;i++)
 8     {
 9     if(n%2==1)
10         n=3*n+1;
11     else
12         n=n/2;
13         if(n==1)
14             break;
15     }
16 printf("%d\n",i);
17 return 0;
18 }

猜你喜欢

转载自www.cnblogs.com/xybz/p/9978887.html
2-2
今日推荐