java是一个范围内的所有毕达哥拉斯三胞胎
如果我想找到特定范围内的所有毕达哥拉斯三胞胎,我编写了以下代码:
for (int a = 1; a < range; a++) {
for (int b = 1; b < range; b++) {
for (int c = 1; c < range; c++) {
if (a * a + b * b == c * c) {
System.out.println(a + "," + b + "," + c);
}
}
}
}
但不幸的是,我得到了重复的三胞胎,例如:3,4,5和4,3,5
我怎样才能克服这个问题
# 1 楼答案
您可以通过更改循环来删除重复项,尤其是在每个循环开始时:
请注意,内部循环是不必要的,因为您可以直接从
a
和b
计算c
。您只需检查计算值是否为整数: