我正在尝试用java进行一些数学运算,如果它(不)偶数,它会测试一个数字,只要它达到1就改变它。
我尝试运行我的循环 999999 次,它似乎卡在大约 120000 次左右。好吧,它并没有因异常而停止,只是感觉编译器卡住了。
我对Java不是很好,有人可以解释一下这里发生了什么吗?
public static void main(String[] args) {
int n = 0;
int highestNumber = 0;
int highestCounter = 0;
int counter = 0;
for (int i = 2;i<1000000;i++) {
if (i%10000==0) {
System.out.println(i);
}
n = i;
while (n!=1) {
if (n%2==0) {
n = n/2;
} else {
n=3*n+1;
}
counter++;
}
if (counter>highestCounter) {
highestCounter = counter;
highestNumber = i;
System.out.println("HIGHEST "+highestNumber+" | counter = "+counter);
}
counter = 0;
n = 0;
}
System.out.println("final "+highestNumber);
}