C++输入直角三角形的斜边长度n(自然数),输出斜边长度 小于等于 此长度的所有直角三角形个数,直角三角形三边都为自然数。
时间: 2024-12-13 11:22:47 浏览: 17
在C++中,你可以使用欧几里得算法来解决这个问题。首先,你需要遍历所有小于等于给定斜边长度n的整数a作为直角三角形的两条直角边,然后计算它们的平方和s。如果s恰好等于n的平方,那么就找到了一个符合条件的直角三角形,并增加计数器。
以下是一个简单的函数示例,它接受一个整数n并返回所有满足条件的直角三角形的数量:
```cpp
#include <iostream>
using namespace std;
int countPythagoreanTriplets(int n) {
int count = 0;
for (int a = 1; a * a <= n; ++a) { // 从1到sqrt(n)
for (int b = a; a * a + b * b <= n; ++b) {
if (a * a + b * b == n * n) { // 如果构成直角三角形
++count;
}
}
}
return count;
}
int main() {
int n;
cout << "请输入斜边长度: ";
cin >> n;
int result = countPythagoreanTriplets(n);
cout << "小于等于" << n << "的直角三角形个数是: " << result << endl;
return 0;
}
```
在这个程序中,`countPythagoreanTriplets`函数负责计算,并`main`函数负责接收用户输入和输出结果。
阅读全文