我想寫一個連續乘法的函式,參考了加法匯總的遞回,將return陳述句中的"+"替換為“*”,但得到的結果為0,
應該怎樣來寫達到乘法的目的哦? (1*2*5*9), 謝謝
def mysum(l):
print (l)
if not l:
return 0
else:
return l[0]*mysum(l[1:])
print (mysum([1,2,5,9]))
代碼執行結果:
[1, 2, 5, 9]
[2, 5, 9]
[5, 9]
[9]
[]
0
uj5u.com熱心網友回復:
既然是乘法, 那最后就不能return 0 了, 要 return 1
def mysum(l):
print (l)
if not l:
return 1
else:
return l[0]*mysum(l[1:])
print (mysum([1,2,5,9]))
uj5u.com熱心網友回復:
from functools import reduce
def f(ls):
return reduce(lambda x,y:x*y,ls)
print (f([1,2,5,9]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227941.html
上一篇:一個MATLAB問題
下一篇:MATLAB
