Python編程算法【二十九】勾股數(shù)
【案例內(nèi)容】
所謂勾股數(shù),是指組成直角三角形的三條邊分別為a、b、c,它們滿足:a2 +?b2 =?c2。
求100以內(nèi)的所有勾股數(shù)。
【解題思路】
經(jīng)分析,只要在100內(nèi)找出所有符合a2?+ b2?= c2的三個(gè)數(shù)即可。進(jìn)一步分析,循環(huán)時(shí)a從1開始,循環(huán)到98即可,因?yàn)槿绻鸻循環(huán)到100,則b和c的取值勢必會(huì)超過100;接著b的取值從a+1開始,它的取值范圍是1到99;以此類推,c從b+1開始,循環(huán)到100。最后用if判斷,把滿足條件的a、b、c全部找出來即可。
【Python代碼】

再次提醒大家,使用range函數(shù)時(shí),要取到末尾那個(gè)數(shù),比如98,記得傳入的參數(shù)是98+1,即99。此外,如果要做的更加嚴(yán)謹(jǐn)一些,則還需判斷組成三角形的條件——任意兩邊之和要大于第三邊,只不過找出來的這52組勾股數(shù)恰巧都滿足了該條件。
標(biāo)簽: