荟萃馆

位置:首页 > 计算机 > 计算机二级

C++勾股数公式讲解

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。以下是小编为大家搜索整理的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互质,即无法得到派生的勾股数。

标签:讲解 股数 公式