第六届蓝桥杯大赛个人赛校内选拔Ca真题题解5 给斜边求直角三角形个数。

题目:

勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。

已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。

求满足这个条件的不同直角三角形的个数。

【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。

例如,输入:
5
程序应该输出:
1

再例如,输入:
100
程序应该输出:
2

再例如,输入:
3
程序应该输出:
0

资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

#include<stdio.h>
#include<math.h>
int main()
{
    
    
    int n,i=1,j,sum=0;
    scanf("%d",&n);
    for(i=1;i<n;i++){
    
    
        j=sqrt(n*n-i*i);
        if(j*j==n*n-i*i)
            sum++;
    }
    printf("%d",sum/2);

    return 0;
    }

二,循环等待支持多组输入(蓝桥杯,不用循环等待)

#include<stdio.h>
#include<math.h>
int main()
{
    
    
    int n,i=1,j;
    while(scanf("%d",&n)!=EOF){
    
    
            int sum=0;
    for(i=1;i<n;i++){
    
    
        j=sqrt(n*n-i*i);
        if(j*j==n*n-i*i)
            sum++;
    }
    printf("%d",sum/2);
}

    return 0;
    }

猜你喜欢

转载自blog.csdn.net/weixin_43959743/article/details/111476511