问题:
对于任意大于
1
的自然数
n
,若
n
为奇数,则将
n
变为
3
n
+
1
,否则变为
n
的一半。
经过若干次这样的变换,一定会使
n
变为
1
。例如,
3→10→5→16→8→4→2→1
。
输入
n
,输出变换的次数。
n
≤10
9
。
样例输入:
3
样例输出:
7
#include <stdio.h>
int main()
{
int n2, count = 0;
scanf("%d", &n2);
long long n = n2;
while (n > 1)
{
if (n % 2 == 1)
n = n * 3 + 1;
else
n /= 2;
count++;
}
printf("%d\n", count);
return 0;
}