若n为偶数,则n除以2(n/2);若为奇数,则n乘3加1(3n+1)。
解题只需要对于n进行模拟一遍,并记录步数即可解题。
C语言
#include <stdio.h>
int main(){
int n, a;
scanf("%d", &n);
a = 0;
for(;n!=1;){
if (n % 2 == 0)
n = n / 2;
else
n = (3 * n + 1) / 2;
a = a + 1;
}
printf("%d", a);
return 0;
}
Python
i = input()
count = 0
n = int(i)
while n != 1:
if n%2 == 1:
count = count + 1
n = (3*n + 1) / 2
else:
count = count + 1
n = n / 2
print(count)