自学编程Python日更成长营

自学Python:求勾股数

2021-12-12  本文已影响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______________

上一篇下一篇

猜你喜欢

热点阅读