Рекурсивный треугольник Паскаля последней строки PythonPython

Программы на Python
Ответить
Anonymous
 Рекурсивный треугольник Паскаля последней строки Python

Сообщение Anonymous »

Мне нужно создать рекурсивную функцию pascal(n), которая возвращает строку n треугольника Паскаля в виде списка (поэтому pascal(3) возвращает [1, 3, 3, 1]).
Пока у меня есть

Код: Выделить всё

def pascal(n):

if n==1:
return [[1]]
else:
result=pascal(n-1)
row=[1]
last_row=result[-1]
for i in range(len(last_row)-1):
row.append(last_row[i]+last_row[i+1])
row+=[1]
result.append(row)
return row
Но это приводит к ошибке.

объект типа 'int' не имеет len()

Если я вместо этого напишу

Код: Выделить всё

def pascal(n):

if n==1:
return [[1]]
else:
result=pascal(n-1)
row=[1]
last_row=result[-1]
for i in range(len(last_row)-1):
row.append(last_row[i]+last_row[i+1])
row+=[1]
result.append(row)
return result
А затем вызовите pascal(3)[-1], проблем нет. Как я могу решить эту проблему? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/701 ... l-triangle
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»