Найти - Пользователи
Полная версия: Создать рекурсивную функцию, возвращающую сумму
Начало » Центр помощи » Создать рекурсивную функцию, возвращающую сумму
1
dima89
Вот числовая последовательность:1^3+…+n^3
dimy44
def f(n, i=1, res=0):
    res += i ** 3
    if i == n:
        return res
    return f(n, i+1, res)
print(f(3))
py.user.next
>>> def f(n):
...     assert n > 0
...     if n > 1:
...         return n ** 3 + f(n - 1)
...     return 1
... 
>>> f(3)
36
>>> f(2)
9
>>> f(1)
1
>>> f(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in f
AssertionError
>>>
sank
Она уже создана
reduce называется
http://docs.python.org/2/library/functions.html#reduce

В вашем случае:
reduce(lambda x, res: x+res, [i**3 for i in range(1, 10)])
dimy44
думаю, тс'у была поставлена задача написать ее самому, в качестве обучающей задачи.
sank
тогда предлагаю самому
ну типа полезно для понимания и всё такое …
cutwater
Модератор: Тема перенесена в Центр помощи
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB