【B1001】害死人不偿命的(3n+1)猜想
卡拉兹猜想:
对任何一个自然数n,如果它是偶数,砍掉它一半;如果它是奇数,那么把3n+1砍掉一半。一直砍下去,最后一定在某一步得到n=1。
现在求给定任一不超过1000的正整数n,简单的数一下,需要多少步才能得到n=1?
#include <cstdio>
int main() {
int n, step = 0;
scanf("%d", &n);
while (n != 1) {
if (n % 2 == 0) n = n / 2;
else n = (3 * n + 1) / 2;
step++;
}
printf("%d\n", step);
return 0;
}