程序设计:勾股定理
对于一个直角三角形,等式a^2+b^2=c^2恒成立,这就是勾股定理。(a, b各为一直角边,c为斜边,且都为整数)
现在给出你c的长度,请你求出有多少对不同a,b(a<=b)满足a^2+b^2=c^2,其实其实就是求有多少个不同形状的斜边为c的直角三角形个数。
输入格式
输入第一行一个整数c(1<=c<=10^6),表示三角形斜边的长度。
输出格式
按题目要求输出答案
解析
打好框架:
#include <bits/stdc++.h>using namespace std;int main() {return 0;}
设置变量,并输入斜边长短:
long long c;//设c边长,注意用long long防止c的平方越界cin >> c;int num = 0;//计符合三角形要求的个数
for循环,枚举出三角形的数量:
for(long long a = 1; a < c; a++){for(long long b = 1; b < c; b++){if(a*a+b*b == c*c){//用勾股判断是否为直角三角形num++;break;//优化,如是一个直角三角形,就跳出b的循环}}}
输出num:
cout << (int)(1.0*num/2 + 0.5);//因为有重复,所以/2并向上取整,因为有可能是单数
代码总结:
#include <bits/stdc++.h>using namespace std;int main() {long long c;cin >> c;int num = 0;for(long long a = 1; a < c; a++){for(long long b = 1; b < c; b++){if(a*a+b*b == c*c){num++;break;}}}cout << (int)(1.0*num/2 + 0.5);return 0;}
如果觉得《给出直角三角形斜边 求有多少三角形符合要求》对你有帮助,请点赞、收藏,并留下你的观点哦!