I am asked to write a recursion for Pascal's triangle, with tuples. This is my code:
def pascal(n):
if n == 1:
return (1,)
if n == 2:
return ((1,),(1,1))
else:
new_row = ()
for i in range(-1, n-1):
if i == -1:
new_row = new_row + (1,)
elif i == n - 1:
new_row = new_row + (1,)
else:
a = pascal(n-1)[n-2][i] + pascal(n-2)[n-1][i+1]
new_row = new_row + (a,)
return pascal(n-1), new_row
I am getting an error that says tuple index out of range if I call pascal(3)
or higher.
This is the trace output:
Traceback (most recent call last):
File "tup.py", line 19, in <module>
print pascal(3)
File "tup.py", line 15, in pascal
a = pascal(n-1)[n-2][i] + pascal(n-2)[n-1][i+1]
IndexError: tuple index out of range
Appreciate any kind assistance, thank you!