我试图找到一个数字的 Collatz 序列。以下代码运行到数字 113383 的无限循环。
int collatz(long number) {
int length = 1; //length of the sequence
while (number != 1) {
printf("%ld-", number);
if ((number % 2) == 0)
number /= 2;
else
number = (number * 3) + 1;
length++;
}
return length;
}
int main() {
printf("%d", collatz(113383));
return 0;
}
编辑:Collatz 猜想说如果数字是偶数,则序列中的下一个数字是 n/2 如果数字是奇数,则 3n+1 如果数字是 1,则终止