什么';我的java代码有什么问题?项目12
我用Java为Project Euler()编写代码。我对Java编码还比较陌生,所以我只讨论了问题12,它要求您找到包含500多个因子的最小三角形数(例如,1+2+3+4+5)。我为此编写了代码,但出于某种原因,我的代码一直挂起:什么';我的java代码有什么问题?项目12,java,Java,我用Java为Project Euler()编写代码。我对Java编码还比较陌生,所以我只讨论了问题12,它要求您找到包含500多个因子的最小三角形数(例如,1+2+3+4+5)。我为此编写了代码,但出于某种原因,我的代码一直挂起: int factors = 0; long triangle = 0L; for(int x = 1; factors <= 500; x++){ triangle += x; for(int y
int factors = 0;
long triangle = 0L;
for(int x = 1; factors <= 500; x++){
triangle += x;
for(int y = 1; y<=triangle; y++){
if(triangle%y==0){
factors = factors + 1;
}
}
if(factors > 500){
System.out.println(triangle);
}
else{
factors = 0;
}
}
int因子=0;
长三角=0L;
对于(intx=1;factors,您的程序实际上并没有挂起;它只是非常低效
因为这是一个项目Euler问题,我不会直接给你一个更优化的解决方案
for(int y = 1; y<=triangle; y++){
if(triangle%y==0){
factors = factors + 1;
}
}
用于(int y=1;y因为我假设它是一个非常大的数字。另外,要在triangle+=x
中添加到它自己,它首先必须等于某个值。您是否尝试过使用调试器来查看因子的值,三角形如何随x的每次迭代而变化?它没有挂起;它只是效率很低。要解决这个问题,y“你将不得不尝试一种不同的方法。”丹尼斯曼说,“那将是一种挑战。”answer@eis好的,我会发布一个更详细的答案。