今天給大家看一個(gè)經(jīng)典案例,希望有所幫助
原題是這樣的:
假設(shè)你要計(jì)算冪,就像內(nèi)置函數(shù)pow和運(yùn)算符**所做的那樣。要定義一個(gè)數(shù)字的整數(shù)次冪,有多種方式,但先來(lái)看一個(gè)簡(jiǎn)單的定義: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ù)語(yǔ)言都可以這樣寫, 代碼冗余, 不夠精簡(jiǎn), 雖然可以實(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è)例子很簡(jiǎn)單, 但實(shí)現(xiàn)的方法也很多, 每種方式各有優(yōu)缺點(diǎn), 所以大家平時(shí)可以發(fā)散思維, 對(duì)于一個(gè)問(wèn)題有多種解決方法
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

