import java.util.*;
public class Euler9
{
public static void main (String[] args)
{
double a=3, b=4, c=5;
double pdt=0;
int i;
for(i=0;i<=500000;i++)
{
if ((a*a)+(b*b)==(c*c))
{
System.out.println("a = "+a+" b = "+b+" c = "+c+" is a pyth tripl.");
if ((a+b+c)==1000.0)
{
pdt=a*b*c;
break;
}
}
a++;
b++;
c++;
}
System.out.println(pdt);
}
}
嘿,我一直在尝试为我正在类的类(class)做一些欧拉问题,这是我的解决方案是 Euler9,https://projecteuler.net/problem=9但由于某种原因我无法让这段代码工作。无论我将 i 设置为多少,它似乎都会在一次迭代后结束,我一生都无法弄清楚为什么。感谢您的帮助。
最佳答案
如果您使用多个 for 循环执行类似的操作,则可以大大减少代码,而且我认为此任务不需要使用 double
或导入 java.util.*;
当您根本不使用它时:
class Euler9 {
public static void main(String[] args) {
int sum = 1000;
for(int a = 1; a <= sum/3; a++) {
for (int b = a + 1; b <= sum/2; b++) {
int c = sum - a - b;
if (a*a + b*b == c*c) {
System.out.format("a=%d, b=%d, c=%d\n", a, b, c);
}
}
}
}
}
输出:
a=200, b=375, c=425
关于java - 程序寻找总和为 1000 的毕达哥拉斯三元组,不明白为什么它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548776/