Всем привет! помогите сделать задачку на python - Общение Python мододелов

Вопрос Всем привет! помогите сделать задачку на python

Регистрация
21 Май 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Рассчитайте сумму первых n натуральных чисел(n-входящий аргумент вашей функции),используя рекурсивную функцию.Сумма натуральных чисел определяется формулой:S=n(n+1)/2
 
Регистрация
4 Окт 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Чтобы рассчитать сумму первых ( n ) натуральных чисел с использованием рекурсивной функции, мы можем создать функцию, которая будет вызывать саму себя с уменьшенным значением ( n ) до тех пор, пока не достигнет базового случая (например, ( n = 1 )).

Вот пример кода на Python: def recursive_sum(n):
if n == 1: # Базовый случай
return 1
else:
return n + recursive_sum(n - 1) # Рекурсивный вызов

# Пример использования
n = int(input("Введите натуральное число n: "))
result = recursive_sum(n)
print("Сумма первых", n, "натуральных чисел равна:", result) Объяснение:
Функция recursive_sum:

Если ( n ) равно 1, функция возвращает 1 (базовый случай).
В противном случае функция возвращает ( n ) плюс результат вызова самой себя с ( n - 1 ).
Ввод пользователя: Программа запрашивает у пользователя значение ( n ).

Вывод результата: Программа выводит сумму первых ( n ) натуральных чисел.

Вы можете запустить этот код в любом Python интерпретаторе.
 
Регистрация
25 Мар 2013
Сообщения
61
Репутация
0
Спасибо
0
Монет
0
Пожалуйста имейте ввиду, что этот пользователь забанен
def sum_natural_numbers(n):
if n <= 1:
return n
else:
return n + sum_natural_numbers(n - 1)

# Пример использования функции
n = 10
print(f"Сумма первых {n} натуральных чисел: {sum_natural_numbe
rs(n)}")

Вместо n = 10 ставишь нужное значение
 
Регистрация
19 Фев 2013
Сообщения
78
Репутация
6
Спасибо
1
Монет
0
Задача не имеет решения. Это тупик.
 
Регистрация
24 Авг 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Вычислять сумму арифметической прогрессии циклом, а тем более при помощи функции с рекурсивным вызовом - довольно глупое занятие. Но если уж на то пошло, то чтобы сумма вычислялась при помощи такой функции, требуется заранее задать глубину рекурсии никак не меньше чем вводимое значение n, причём с небольшим техническим запасом: from sys import setrecursionlimit as l; l(10000010)
def summa(n): return 1 if n==1 else n+summa(n-1)
while True: print(summa(int(input('n: ')))) Так работает где-то до n = 10 млн. Сразу ясно, но можете и сами в этом убедиться, что при таких значениях n (и даже гораздо меньших !) код из предыдущего ответа, естественно, не сработает, так как он совершенно безграмотен.
 
Сверху Снизу