Предмет: Информатика, автор: 6776765

Напишите рекурсивную функцию, которая осуществляет суммирование чисел в списке. Список должен быть сгенерирован из 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)

Ответы

Автор ответа: NarimanAbu1488
1

Ответ:

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)         #отображаем результат


6776765: спасибо, в вашем коде ошибочка есть нужно заменить m.append(random.randrange(1, 101))
NarimanAbu1488: Ну, можно и так, или как у меня через += просто это разные конструкции, которые имеют один и тот же результат!
Похожие вопросы
Предмет: Французский язык, автор: alisochka1mgit