日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python辗转相除法求最大公约数的递归函数_Python基于辗转相除法求解最大公约数的方法示例...

發(fā)布時(shí)間:2025/3/19 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python辗转相除法求最大公约数的递归函数_Python基于辗转相除法求解最大公约数的方法示例... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

之前總結(jié)過一次高德納TAOCP中的最大公約數(shù)求解,其實(shí)課后題中的算法修改要求實(shí)現(xiàn)的是輾轉(zhuǎn)相除法求解最大公約數(shù)。

這個(gè)題目我最初的理解理解錯(cuò)了,自然也沒有做出標(biāo)準(zhǔn)答案?,F(xiàn)在按照標(biāo)準(zhǔn)答案的解答寫一下相應(yīng)的代碼實(shí)現(xiàn):

# -*- coding:utf-8 -*-

#! python2

def MaxCommDivisor(m,n):

while m * n != 0:

m = m % n

if m == 0:

return n

else:

n = n % m

if n == 0:

return m

print(MaxCommDivisor(55,120))

程序的執(zhí)行結(jié)果:

交換一下兩個(gè)數(shù)字的位置,代碼如下:

# -*- coding:utf-8 -*-

#! python2

def MaxCommDivisor(m,n):

while m * n != 0:

m = m % n

if m == 0:

return n

else:

n = n % m

if n == 0:

return m

print(MaxCommDivisor(120,55))

程序的執(zhí)行結(jié)果:

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

def CommDevisor(m,n):

r = m % n

while r != 0:

m = n

n = r

r = m % n

return n

print(CommDevisor(120,25))

運(yùn)行結(jié)果:

新算法在循環(huán)中,多了一個(gè)除法以及比較操作。其實(shí),比較的效率還是不錯(cuò)的,但是除法的運(yùn)算會導(dǎo)致效率的降低。

PS:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

總結(jié)

以上是生活随笔為你收集整理的python辗转相除法求最大公约数的递归函数_Python基于辗转相除法求解最大公约数的方法示例...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。