Python で乗算再帰 (コンテナーのすべての値を乗算する) を実行しようとしています。この関数は、リストの要素を位置引数 (*n) として受け取ります。実行すると、「最大再帰深度に達しました」というエラーが表示されます。ただし、単に *n の代わりに n を使用してリスト内の要素を送信すると、コードは正常に機能します。
コードが機能しない:
def multiply(*n):
if n:
return n[0]*multiply(n[1:])
else:
return 1
multiply(5,1,4,9)
作業コード:
def multiply(n):
if n:
return n[0]*multiply(n[1:])
else:
return 1
multiply([5,1,4,9])