gpt4 book ai didi

java - 为什么这个程序运行这么慢?

转载 作者:行者123 更新时间:2023-11-30 08:23:04 24 4
gpt4 key购买 nike

这是针对项目欧拉问题 14。

当一个数是偶数时,你应该将它除以二,但当它是奇数时,你应该将它乘以三然后加一。最终它应该达到一个。

我的任务是找出需要最多步数才能达到 1 的数字。

这是我的代码:

    int currentNum = 0;
int iterator = 0;
int[] largestChain = new int[]{0,0};
for(int i = 10;i<=1000000;i++)
{
currentNum = i;
iterator = 0;
while(currentNum!=1)
{
iterator++;
if(currentNum%2==0)
{
currentNum/=2;
}
else
{
currentNum = (currentNum*3)+1;
}
}
if(iterator>largestChain[1])
{
largestChain[0] = i;
largestChain[1] = iterator;
}
}

System.out.println("largest iterator:"+largestChain[1]+"for num:"+largestChain[0]);

你能告诉我是什么减慢了速度吗? (目前已超过 30 分钟,但仍未得出答案)。

最佳答案

使用long 变量代替intcurrentNum 变得如此之高,以至于值环绕成负数!

一旦你做了那个改变,你的算法就可以正常工作了。 (我测试过)

关于java - 为什么这个程序运行这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23940233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com