我想应用 Collatz 序列并将其应用于从 1 到 10^6 的所有数字,并返回达到 1 所需的最大链的数字。但是,我的循环似乎没有在 Eclipse 中终止,我不知道为什么,尽管我希望每一步都显示出来,但我什至无法在控制台中显示所有打印件。
collatz 序列由以下规则计算:
如果 n 是奇数,则下一个数是 n/2
如果 n 是偶数,则下一个数字是 3n + 1
这是我到目前为止所拥有的:
public static long collatz() {
long res = 0;
long n = 1;
long count = 0;
long largestCount = 0;
long t = 0;
for (long k = 1; k <= 20; k++) {
n = k;
while (n != 1) {
if ((n % 2) == 0) {
n = n / 2;
count = count + 1;
}
else {
n = (3 * n) + 1;
count = count + 1;
}
if (count > largestCount) {
largestCount = count;
res = k;
}
}
}
System.out.println(res);
return res;
}