特别毕达哥拉斯三胞胎

时间:2013-12-20 14:09:37

标签: java pythagorean

我的代码出了什么问题?当正确答案显然为6,8时,它打印2,2

public static void main(String[] args) {

    int a = 1;
    int b = 1;
    int answer = 0;
    int j = 4;
    while (j == 4) {
        for (a = 1; a <= 10; a++) {
            for (b = 1; b <= 10; b++) {
                answer = a * a + b * b;
                if (answer == 100) {
                    j = 10;
                }
            }
        }
    }
    System.out.println(a + " " + b);
}

2 个答案:

答案 0 :(得分:6)

if(answer == 100); 在你的if之后你有一个额外的分号。

这将导致它执行j = 10;,无论answer等于

答案 1 :(得分:0)

您正在同时递增a和b。在您的代码中,这两个数字将始终相等。此外,退出循环时,您不会测试匹配项。