编程题2
类型:程序题
勾股数


【问题描述】
 勾股数是很有趣的数学概念。如果三个正整数�、�、�,满足�2 + �2 = �2,而且1 ≤�≤�≤�,我们就将�、�、�组成的三元组(�, �, �)称为勾股数。你能通过编程,数数有多少组勾股数,能够满足�≤�吗?【输入描述】
 输入一行,包含一个正整数�。约定1 ≤�≤1000。【输出描述】
 输出一行,包含一个整数�,表示有�组满足条件的勾股数。【样例输入1】

5

【样例输出1】

1

【样例解释1】
 满足�≤5 的勾股数只有一组,即(3,4,5)。【样例输入2】

13

【样例输出2】

3

【样例解释2】
      的勾股数有3 满足�≤13            组,即(3,4,5)、(6,8,10)和(5,12,13)。【参考代码】

#include <iostream>
#include <cmath>
using namespace std;
int main() {
   int n, cnt = 0;
  cin >> n;
       for (int a = 1; a <= n; a++)
              for (int b = a; b <= n; b++) {
                          int c2 = a * a + b * b;
                          int c = (int)(sqrt(c2) + 0.5);
                             if (c > n)
                          break;
                             if (c * c == c2)
                            cnt++;
             }
       cout << cnt << endl;
  return 0;
}
代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?