fork download
  1. def media_recursiva(valores, i = 0, n = None):
  2. if n is None:
  3. n = len(valores)
  4.  
  5. # último elemento
  6. if i == n - 1:
  7. return valores[i]
  8.  
  9. # dividir por n a soma computada até agora
  10. if i == 0:
  11. return (valores[i] + media_recursiva(valores, i + 1, n)) / n
  12.  
  13. # computar soma
  14. return valores[i] + media_recursiva(valores, i + 1, n)
  15.  
  16. print(media_recursiva(list(range(3000)))) # lista com 3000 elementos
  17.  
Runtime error #stdin #stdout #stderr 0.13s 24588KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 16, in <module>
  File "./prog.py", line 11, in media_recursiva
  File "./prog.py", line 14, in media_recursiva
  File "./prog.py", line 14, in media_recursiva
  File "./prog.py", line 14, in media_recursiva
  [Previous line repeated 994 more times]
  File "./prog.py", line 6, in media_recursiva
RecursionError: maximum recursion depth exceeded in comparison