题目:
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。
已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。
求满足这个条件的不同直角三角形的个数。
【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。
例如,输入:
5
程序应该输出:
1
再例如,输入:
100
程序应该输出:
2
再例如,输入:
3
程序应该输出:
0
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
解题思路:求直角三角形个数,首先边的关系是:两条直角边的平方和等于斜边的平方。统计个数的时候记得要除以2,因为会重复统计一次。
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,i=0;
float a,n;
scanf("%f",&n);
a=pow(n,2);
for(x=1;x<n;x++)
{
for(y=1;y<n;y++)
{
if(pow(x,2)+pow(y,2)==a)
i++;
}
}
printf("%d",i/2);
}
注意:pow函数是double类型!!!