题目
A Pythagorean triplet is a set of three natural numbers, a b c, for which,
For example,
There exists exactly one Pythagorean triplet for which a + b + c = 1000.
Find the product abc.
找出唯一的满足a + b + c = 1000的毕达哥拉斯三元组{a, b, c}。
一个毕达哥拉斯三元组是一个包含三个自然数的集合,
a<b<c,满足条件:
例如:
已知存在并且只存在一个毕达哥拉斯三元组满足条件a + b + c = 1000。
找出该三元组中abc的乘积。
解答:由于存在且只有一个,可以提早结束循环。节约时间。Java程序
public class N_9 {
public static void main(String[] args) {
System.out.println(pythagoras());
}
public static int pythagoras() {
int n=0;
for (int a = 1; a <= 1000; a++)
for (int b = a + 1; b <= 1000; b++){
double c = a*a + b*b;
c = Math.sqrt(c);
if(c!=(int)c)
continue;
if (a + b + c == 1000) {
n=(int) (a*b*c);
break;
}
}
return n;
}
}
运行结果:31875000