今天給大家看一個(gè)經(jīng)典案例,希望有所幫助
原題是這樣的:
假設(shè)你要計(jì)算冪,就像內(nèi)置函數(shù)pow和運(yùn)算符**所做的那樣。要定義一個(gè)數(shù)字的整數(shù)次冪,有多種方式,但先來看一個(gè)簡單的定義:power(x, n)(x的n次冪)是將數(shù)字x自乘n - 1次的結(jié)果,即將n個(gè)x相乘的結(jié)果。換而言之,power(2, 3)是2自乘兩次的結(jié)果,即2 × 2 × 2 = 8。
?
方法一:?
1 def funa(x, n): 2 res = x 3 if n < 0: 4 return -1 5 elif n == 0: 6 return 1 7 elif n > 0: 8 n -= 1 9 while n > 0: 10 res *= x 11 n -= 1 12 return res 13 else : 14 print ( " ! " )
此方法大多數(shù)語言都可以這樣寫, 代碼冗余, 不夠精簡, 雖然可以實(shí)現(xiàn)功能, 但是不夠美觀
方法二:
1 def funb(x, n): 2 result = 1 3 for i in range(n): 4 result *= x 5 return result
此方法符合python之美
方法三:
1 def func(x, n): 2 if n == 0: 3 return 1 4 else : 5 return x * func(x, n - 1)
此方法為遞歸, 了解即可
雖然這個(gè)例子很簡單, 但實(shí)現(xiàn)的方法也很多, 每種方式各有優(yōu)缺點(diǎn), 所以大家平時(shí)可以發(fā)散思維, 對于一個(gè)問題有多種解決方法
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
