▷Scratch课堂丨学数学-算勾股数

网友投稿 2018-06-30 10:25

勾股数 勾股数又名毕氏三元数 。勾股数就是可以构成一个直角三角形三边的一组正整数。勾股定理:直角三角形两条直角边a、b的平方和等于斜边c的平方(a²+b²=c²) 01 题目 请写出100以内所有的勾股数? 02 解题思路 我们用编写程序的方式可以快速解出这道题目。我们知道最小勾股数是3、4、5 。要避免写程序算出3、4、5和4、3、5这样重复的勾股数,就要使三个数符合a 03 程序脚本案例 04 其它编程语言实现  Python #通过公式求勾股数 def Ht(k, m):             a = k * (m * m - n * n)             b = k * (2 * m * n)             c = k * (m * m  + n * n)     result = []     for k0 in range(1, k + 1):         for m0 in range(2, m + 1):             for n0 in range(1, m0):                 a = k0 * (m0 * m0 - n0 * n0)                 b = k0 * (2 * m0 * n0)                 c = k0 * (m0 * m0  + n0 * n0)                 if not {a, b, c} in result:                     result.append({a, b, c})     result = [sorted(list(x)) for x in result]     return (sorted(result,key=lambda x:x[0]),     '共有 {length} 组勾股数'.format(length = len(result))) Ht(10, 10)   c++     #include  using namespace std; int main() {     int a, b, c;     for (a = 1; a < 100; a++)     for (b = 1; b < 100; b++)     for (c = 1; c < 100; c++)     if (a< p="">         cout << a << " " << b << " " << c << endl;     return 0; } 05 试一试 使用起边的算法找出自然数100-1000中所有勾股数哦!

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com