编程题2

cb553734 程序题 共 个子题
勾股数


【问题描述】
 勾股数是很有趣的数学概念。如果三个正整数�、�、�,满足�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;
}

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧