失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 给出直角三角形斜边 求有多少三角形符合要求

给出直角三角形斜边 求有多少三角形符合要求

时间:2020-06-29 08:26:28

相关推荐

给出直角三角形斜边 求有多少三角形符合要求

程序设计:勾股定理

对于一个直角三角形,等式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;}

如果觉得《给出直角三角形斜边 求有多少三角形符合要求》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。