循环结构程序设计之毕达哥拉斯三元组案例代码

问题描述

一个直角三角形的三边可以都为整数,直角三角形三条边组成的数组称为毕达哥拉斯三元组。这三边必须满足的关系是:两直角边的平方和等于斜边的平方。请找出所有边长不大于500的毕达哥拉斯三元组(直角边1, 直角边2, 斜边)。
用三重嵌套的for语句试出所有可能的毕达哥拉斯三元组。这是一个“蛮力”(brute-force)计算的例子。

输入形式:无输入。

输出形式:每行输出一个三元组(直角边1, 直角边2, 斜边),按直角边1由小到大的顺序输出,若直角边1相等,按直角边2由小到大的顺序输出。
最后一行输出三元组的总数,格式见样例。

样例输入:(无)

样例输出:
3 4 5
4 3 5
5 12 13
6 8 10
7 24 25
8 6 10
8 15 17
9 12 15
9 40 41
10 24 26
……
A total of 772 triples were found.

案例代码

#include <stdio.h>

int main() {
    int count = 0;
    for (int a = 1; a <= 500; a++) {
        for (int b = a; b <= 500; b++) {
            for (int c = b; c <= 500; c++) {
                if (a * a + b * b == c * c) {
                    printf("%d %d %d\n", a, b, c);
                    count++;

                    // 考虑直角边互换的情况
                    if (a != b) {
                        printf("%d %d %d\n", b, a, c);
                        count++;
                    }
                }
            }
        }
    }
    printf("A total of %d triples were found.\n", count);

    return 0;
}

这段代码使用三重嵌套的循环来遍历所有可能的直角边,并检查是否满足毕达哥拉斯定理。如果满足条件,就将三个边长输出,并递增计数器count。最后输出找到的三元组总数。

运行截图

图片[1]-循环结构程序设计之毕达哥拉斯三元组案例代码-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享