今天給大家看一個經典案例,希望有所幫助
原題是這樣的:
假設你要計算冪,就像內置函數pow和運算符**所做的那樣。要定義一個數字的整數次冪,有多種方式,但先來看一個簡單的定義:power(x, n)(x的n次冪)是將數字x自乘n - 1次的結果,即將n個x相乘的結果。換而言之,power(2, 3)是2自乘兩次的結果,即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 ( " ! " )
此方法大多數語言都可以這樣寫, 代碼冗余, 不夠精簡, 雖然可以實現功能, 但是不夠美觀
方法二:
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)
此方法為遞歸, 了解即可
雖然這個例子很簡單, 但實現的方法也很多, 每種方式各有優缺點, 所以大家平時可以發散思維, 對于一個問題有多種解決方法
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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