今日新开传奇
今日刚开传奇

C++勾股数公式讲解 新开1.76复古传奇合击

  C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。以下是小编为大家搜索整理的C++勾股数公式讲解, 希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

  Roowe很喜欢研究数学,现在他就遇到一个有趣的问题,比如,直角三角形的周长是120的话,那么它的三条边可以是20,48,52,或者24,45,51,还有30,40, 50,有三种不同的解,现在他想知道一个区间[a,b]中哪个数的解数最多(1<= a, b <= 1000000)?

  输入

  10 100

  1000 100000

  1 1000000

  300000 700000

  100000 300000

  100000 700000

  800000 900000

  104 720720

  80 360360

  1 1000000

  输出

  60 2

  55440 40

  720720 104

  360360 80

  240240 64

  360360 80

  831600 78

  720720 104

  360360 80

  720720 104

  直角三角形三条边a, b, c,其中a,b是直角边。

  则 a=2*m*n

  b=m^2-n^2

  c=m^2+n^2

  当然,这是有前提条件的,也就是其局限性:“勾股数的公式还是有局限的。勾股数公式可以得到所有的基本勾股数,但是不可能得到所有的派生勾股数。比如6,8,10;9,12,15…,就不能全部有公式计算出来”

  也就是说,3,4,5可以求出来,但是其倍数6,8,10就不行了。

  这里要注意几个问题构成三角形的条件

  2*m*n+m^2-n^2 > m^2+n^2

  既m>n

  2.a, b, c互质,即无法得到派生的勾股数。