判断直角三角形边长:C++代码实现

本文提供一个C++代码解决方案,用于判断给定斜边长度的直角三角形是否存在两条边长为正整数的直角边。

问题描述:

我们只考虑边长为整数的直角三角形。给定一个直角三角形的斜边长度c,能否找出2条直角边a、b,使得a,b为正整数。

输入格式:

第一行为T,代表T组测试样例.接下来T行,每行一个正整数c,代表斜边长度(T<=100,c<=50000).

输出格式:

一行,如果能找到a,b都为正整数,则输出Yes,否则输出No

**C++代码:**cpp#include #include

bool isPerfectSquare(int n) { int sqrtN = sqrt(n); return sqrtN * sqrtN == n;}

int main() { int t; std::cout << '请输入测试样例的数量t:' << std::endl; std::cin >> t;

for (int i = 0; i < t; ++i) {        int c;        std::cout << '请输入斜边长度c:' << std::endl;        std::cin >> c;

    bool found = false;        for (int a = 1; a < c; ++a) {            int bSquare = c * c - a * a;            if (isPerfectSquare(bSquare)) {                found = true;                break;            }        }

    std::string result = found ? 'Yes' : 'No';        std::cout << result << std::endl;    }

return 0;}

代码解析:

  1. isPerfectSquare(int n) 函数:判断一个数是否为完全平方数。2. main() 函数: - 首先读取测试样例数量 t。 - 使用循环处理每个测试样例: - 读取斜边长度 c。 - 使用循环遍历所有可能的直角边 a (1 到 c-1)。 - 计算另一条直角边 b 的平方值 bSquare = c * c - a * a。 - 使用 isPerfectSquare 函数判断 bSquare 是否为完全平方数。 - 如果找到符合条件的 ab,将 found 标记为 true,并跳出循环。 - 根据 found 的值,输出 'Yes' 或 'No'。

总结:

这段代码利用勾股定理,通过遍历可能的直角边长度,判断是否存在满足条件的正整数边长。该代码简洁易懂,并能有效解决问题。

判断直角三角形边长:C++代码实现

原文地址: https://www.cveoy.top/t/topic/buvU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录