擅长:python、mysql、java
<p><strong>您忘记检查基本情况是否为配对</strong></p>
<pre><code>def prodotto_lista_pari (l):
if len(l) == 1:
if l[0] % 2 == 0:
return l[0]
return 1
n = 0
if l[n] % 2 == 0:
return prodotto_lista_pari([l[0]]) * prodotto_lista_pari(l[1:])
return prodotto_lista_pari(l[1:])
l = [2, 1, 5, 12, 80, 77, 15]
print(prodotto_lista_pari(l))
>> 1920
</code></pre>
<p>最后一个元素<strong>15</strong>落在基本条件下
因此,将<strong>1920</strong>乘以<strong>15</strong>,得到<strong>28800</strong></p>
<p>顺便说一句,在python中,您的版本很快达到<strong>最大递归深度</strong>,更好的版本会将列表一分为二,以便获得log(n)递归深度</p>