Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 16, 2013 13:50:17

dima89
Зарегистрирован: 2013-01-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Создать рекурсивную функцию, возвращающую сумму

Вот числовая последовательность:1^3+…+n^3

Офлайн

#2 Янв. 16, 2013 14:58:00

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Создать рекурсивную функцию, возвращающую сумму

def f(n, i=1, res=0):
    res += i ** 3
    if i == n:
        return res
    return f(n, i+1, res)
print(f(3))

Офлайн

#3 Янв. 18, 2013 03:48:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9882
Репутация: +  853  -
Профиль   Отправить e-mail  

Создать рекурсивную функцию, возвращающую сумму

>>> 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
>>>



Офлайн

#4 Янв. 18, 2013 15:15:56

sank
Зарегистрирован: 2012-10-05
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Создать рекурсивную функцию, возвращающую сумму

Она уже создана
reduce называется
http://docs.python.org/2/library/functions.html#reduce

В вашем случае:

reduce(lambda x, res: x+res, [i**3 for i in range(1, 10)])

Отредактировано sank (Янв. 18, 2013 15:16:14)

Офлайн

#5 Янв. 18, 2013 15:31:56

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Создать рекурсивную функцию, возвращающую сумму

думаю, тс'у была поставлена задача написать ее самому, в качестве обучающей задачи.

Офлайн

#6 Янв. 18, 2013 15:46:00

sank
Зарегистрирован: 2012-10-05
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Создать рекурсивную функцию, возвращающую сумму

тогда предлагаю самому
ну типа полезно для понимания и всё такое …

Офлайн

#7 Янв. 18, 2013 18:54:13

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Создать рекурсивную функцию, возвращающую сумму

Модератор: Тема перенесена в Центр помощи



Отредактировано cutwater (Янв. 18, 2013 18:54:25)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version