国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python基于輾轉相除法求解最大公約數的方法示例

2020-01-04 15:32:34
字體:
來源:轉載
供稿:網友

本文實例講述了Python基于輾轉相除法求解最大公約數的方法。分享給大家供大家參考,具體如下:

之前總結過一次高德納TAOCP中的最大公約數求解,其實課后題中的算法修改要求實現的是輾轉相除法求解最大公約數。

這個題目我最初的理解理解錯了,自然也沒有做出標準答案。現在按照標準答案的解答寫一下相應的代碼實現:

# -*- coding:utf-8 -*-#! python2def MaxCommDivisor(m,n):  while m * n != 0:    m = m % n    if m == 0:      return n    else:      n = n % m      if n == 0:        return mprint(MaxCommDivisor(55,120))

程序的執行結果:

Python,輾轉相除法,求解,最大公約數

交換一下兩個數字的位置,代碼如下:

# -*- coding:utf-8 -*-#! python2def MaxCommDivisor(m,n):  while m * n != 0:    m = m % n    if m == 0:      return n    else:      n = n % m      if n == 0:        return mprint(MaxCommDivisor(120,55))

程序的執行結果:

Python,輾轉相除法,求解,最大公約數

題目提示中提到了會降低效率,通過上面的代碼來看,效率的損失應該是在除法以及判斷上。在此,把之前算法的代碼拿過來對比一下:

def CommDevisor(m,n):  r = m % n  while r != 0:    m = n    n = r    r = m % n  return nprint(CommDevisor(120,25))

運行結果:

Python,輾轉相除法,求解,最大公約數

新算法在循環中,多了一個除法以及比較操作。其實,比較的效率還是不錯的,但是除法的運算會導致效率的降低。

 

希望本文所述對大家Python程序設計有所幫助。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 诏安县| 庆城县| 郴州市| 钟祥市| 桐城市| 扶余县| 榕江县| 庆云县| 文安县| 大港区| 舟山市| 苗栗县| 仁化县| 太保市| 迁安市| 文水县| 长汀县| 道孚县| 松阳县| 瓮安县| 泸州市| 丽水市| 上杭县| 揭西县| 土默特右旗| 靖西县| 江阴市| 汝州市| 祥云县| 即墨市| 邹城市| 北京市| 石狮市| 平湖市| 莎车县| 浦东新区| 聂荣县| 乌拉特中旗| 宿州市| 四子王旗| 乡宁县|