資訊內(nèi)容
?Scratch課堂丨學(xué)數(shù)學(xué)-算勾股數(shù)
勾股數(shù)
勾股數(shù)又名畢氏三元數(shù)?。勾股數(shù)就是可以構(gòu)成一個(gè)直角三角形三邊的一組正整數(shù)。勾股定理:直角三角形兩條直角邊a、b的平方和等于斜邊c的平方(a2+b2=c2)
01
題目
請(qǐng)寫(xiě)出100以?xún)?nèi)所有的勾股數(shù)?
02
解題思路
我們用編寫(xiě)程序的方式可以快速解出這道題目。我們知道最小勾股數(shù)是3、4、5 。要避免寫(xiě)程序算出3、4、5和4、3、5這樣重復(fù)的勾股數(shù),就要使三個(gè)數(shù)符合a
03
程序腳本案例

04
其它編程語(yǔ)言實(shí)現(xiàn)
?Python
#通過(guò)公式求勾股數(shù)
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} 組勾股數(shù)'.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
試一試
使用起邊的算法找出自然數(shù)100-1000中所有勾股數(shù)哦!
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
為什么要讓孩子學(xué)習(xí)編程?
Scratch 是一個(gè)全新的程序設(shè)計(jì)語(yǔ)言,用它你可以很容易的去創(chuàng)造交互式故事情節(jié)、動(dòng)畫(huà)、游戲、數(shù)學(xué)探索、物理模擬,而后你可以把你的創(chuàng)作,共享到其他網(wǎng)站上去! 為什么要讓孩子學(xué)習(xí)編程? ???????
- 下一篇
用Scratch制作夏日小游戲
炎炎夏天到了,蚊蟲(chóng)開(kāi)始增多,真讓人煩惱。不過(guò),沒(méi)有什么比坐在河邊溫暖的石頭上用舌頭捕捉蒼蠅更愜意的事情了,至少對(duì)于青蛙來(lái)說(shuō)是如此。 今天,來(lái)教大家創(chuàng)建一個(gè)游戲吧!在游戲中,你是一只青蛙,正試圖捕捉極品美味:河馬蠅。