给你一个n,计算出1 ≤ a ≤ b ≤ c ≤ n.使得由abc构成的三角形满足勾股定理,c为斜边。
没有简单的方法,直接爆力,但是要注意,有些abc满足勾股定理的表达式,但不一定是三角形,所以要判断一下,根据三角形三边的性质,两边之和大于第三边,两边之差小于第三边。
//cf304 A //2013-06-05-18.14 #include <stdio.h> #include <math.h> int main() { int n; while (scanf("%d", &n) != EOF) { int cnt = 0; for (int i = 1; i < n; i++) { for (int j = 1; j < i; j++) { int t = i*i + j*j; int c = (int)sqrt(t); if (c > n) continue; if (c*c != t) continue; if (i+j > c && i+c > j && j+c > i && i-j < c && i-c < j && j-c < i) cnt++; } } printf("%d\n", cnt); } return 0; }