Напишите рекурсивную функцию, которая осуществляет суммирование чисел в списке. Список должен быть сгенерирован из 10 чисел, каждое в диапазоне от 1 до 100. На питоне
Massiv = [1, 2, 3, 4, 5]
Summa = 0
def DSumma(x):
global Summa
if x == len(Massiv):
return
Summa += Massiv[x]
DSumma(x+1)
DSumma(0)
print('\nSumma = ', Summa)
Ответы
Ответ:
import random
def Summa(n, Massiv, sum = 0):
if n == 1: return sum
sum += Massiv[n-1]
return Summa(n-1, Massiv, sum)
def massiv_generator():
m = []
for i in range(10):
m += random.randrange(1, 101)
return m
m = massive_generator()
n = len(m)
sum = Summa(n, m)
print("Результат",sum)
Объяснение:
import random
#Сначала напишем рекурсивную функцию, которая суммирует числа
def Summa(n, Massiv, sum = 0): #Сумма по умолчанию равна нулю, n - длинна массива и massive передаваемый массив
if n == 1: return sum #Когда просуммированы все элементы массива, то вернуть сумму
sum += Massiv[n-1] #Прибавить элемент массива к сумме
return Summa(n-1, Massiv, sum) #Перейти к следующей рекурсии
#Теперь напишем генератор массива из 10 чисел
def massiv_generator():
m = [] # создаем пустой массив
for i in range(10):
m += random.randrange(1, 101) #создаем случайно число от 1 до 100 и присваем его к концу массива
return m #возвращаем массив
#Теперь переходим к глобальному коду
m = massiv_generator() #Вызываем функцию и создаем массива из 10 случайных чисел
n = len(m) #определяем длинну массива
sum = Summa(n, m) #Вызываем рекурсивную функцию
print("Результат",sum) #отображаем результат