题目链接
给你一个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;
}