自学Python:求勾股数

作者: 小强聊成长 | 来源:发表于2021-12-12 08:55 被阅读0次

    什么是勾股数?

    勾股数就是指能够构成直角三角形三条边的三个正整数(a,b,c),根据“勾股数”定义,所求三角形三边应满足条件a^2+b^2=c^2。可以在所求范围内利用穷举法找出满足条件的数。那么50以内有多少勾股数?

    下面直接上代码:

    ########################

    import math

    if __name__ == "__main__":

        count = 0

        print("50以内的勾股数有:")

        # a、b、c分别表示三角形的三条边

        # 满足勾股数的三个数组成的三角形一定是直角三角形

        print("  a\tb\t c \t\t a \t b \t  c \t\t a \t  b\t  c \t\t a\t b\t  c");

        # 求50以内的勾股数

        for a in range(1,51):

            for b in range(a+1, 51):          # 邻边不能相等,否则就是等边三角形了

                c = int(math.sqrt(a*a + b*b))  # 求c值,并转换为整型

                # 判断c的平方是否等于a*a + b*b,且两边之和大于第三边

                if c*c == (a*a + b*b) and (a + b > c) and (a + c > b) and (b + c > a) and c <= 50:

                    print("%4d %4d %4d\t |" %(a, b, c), end="")

                    count += 1

                    if count % 4 == 0:

                        print()

    ########################

    执行结果如下:

    50以内的勾股数有:

      a b c a b   c a   b   c a b   c

      3    4    5 |  5  12  13 |  6    8  10 |  7  24  25 |

      8  15  17 |  9  12  15 |  9  40  41 |  10  24  26 |

      12  16  20 |  12  35  37 |  14  48  50 |  15  20  25 |

      15  36  39 |  16  30  34 |  18  24  30 |  20  21  29 |

      21  28  35 |  24  32  40 |  27  36  45 |  30  40  50 |

    ________________END______________

    相关文章

      网友评论

        本文标题:自学Python:求勾股数

        本文链接:https://www.haomeiwen.com/subject/loigxrtx.html