编程题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;
} 本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析