A38492. 勾股数问题描述勾股数是很有趣的数学概念。如果三个正整数a、b、c,满足a的平方 + b的平方 = c的平方,而且 1 ≤a ≤ b≤ c,我们就将a、b、c组成的三元组称为勾股数。你能通过编程,数数有多少组勾股数,能够满足 ≤ 吗?输入描述输入一行,包含一个正整数。约定 1 ≤ ≤ 1000。输出描述输出一行,包含一个整数,表示有组满足条件的勾股数。样例输入 1 5样例输出 1 1样例解释 1满…
填空题
中等
知识点
题目描述
勾股数
问题描述
勾股数是很有趣的数学概念。如果三个正整数a、b、c,满足a的平方 + b的平方 = c的平方,而且 1 ≤a ≤ b≤ c,我们就将a、b、c组成的三元组称为勾股数。你能通过编程,数数有多少组勾股数,能够满足 ≤ 吗?
输入描述
输入一行,包含一个正整数。约定 1 ≤ ≤ 1000。
输出描述
输出一行,包含一个整数,表示有组满足条件的勾股数。
样例输入 1
5
样例输出 1
1
样例解释 1
满足≤ 5 的勾股数只有一组,即(3,4,5)。
样例输入 2
13
样例输出 2
3
样例解释 2
满足 ≤ 13 的勾股数有 3 组,即(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;
}
上一题
下一题