
Alberto Castro Flores
PreguntaEn este ejemplo no entiendo porque el resultado de k empieza desde uno hasta 10 si le pasamos el argumento a la funcion cuando k = 10, me pueden explicar como funciona este algoritmo porfavor?
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(f’{k}, k’)
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(10)
Estos son los resultados:
1, k
1
2, k
3
3, k
6
4, k
10
5, k
15
6, k
21
7, k
28
8, k
36
9, k
45
10, k
55

Alberto Castro Flores
ya veo gracias

Jorge Cruz Perez
Asi es, como comenta edison, cada vez que entras a la llamada recursiva es otro contexto, y eso esta antes de tu llamada a print

Alberto Castro Flores
cuando llega a la linea result = k + tri_recursion(k - 1) por primera vez se imprime el resultado?, o se lo salta para iniciar el nuevo llamado?

Edison Castro
Por la recursividad, cuando el código inicia va a llegar a esta línea: result = k + tri_recursion(k - 1) La cual vuelve a llamar a esa misma función y por lo tanto comienza de nuevo, hasta que el resultado llega a 0, entonces luego comienza a devolverse y a imprimir por lo que lo que primero imprime es la última ejecución osea cuando k llego al valor de 1.