今天給大家看一個經典案例,希望有所幫助
原題是這樣的:
假設你要計算冪,就像內置函數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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

