蓝桥杯试题:
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。
已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。
求满足这个条件的不同直角三角形的个数。
【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。
例如,输入:
5
程序应该输出:
1
再例如,输入:
100
程序应该输出:
2
再例如,输入:
3
程序应该输出:
0
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
#include<stdio.h>
#include<math.h>
int main()
{
long long n,i,j,sum=0,m;
while(~scanf("%lld",&n))
{
for(i=1;i<n;i++)
{
j=sqrt(n*n-i*i);
if(j*j==n*n-i*i)
sum++;
}
printf("%lld\n",sum/2);
}
return 0;
}
不要用两重循环,否则会超时,最后记得sum要除以2,去重。