#include <math.h>#include <stdio.h>int main(){ const int sum = 1000; int a; for (a = 1; a <= sum/3; a++) { int b; for (b = a + 1; b <= sum/2; b++) { int c = sum - a - b; if ( a*a + b*b == c*c ) printf("a=%d, b=%d, c=%dn",a,b,c); } } return 0;}
说明:
b = a;
如果a,b(a <= b)和c是毕达哥拉斯三重态,
则b,a(b> = a)和c-也是解,因此我们只能搜索一种情况c = 1000-a-b; 这是问题的条件之一(我们不需要扫描所有可能的“ c”:只需对其进行计算)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)