Вопрос задан 26.09.2023 в 11:07. Предмет Информатика. Спрашивает Иданов Сергей.

Напишите рекурсивную функцию, которая осуществляет суммирование чисел в списке. Список должен быть

сгенерирован из 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)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Nosova Daria.

Ответ:

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваш код почти верен, но он содержит несколько ошибок. Прежде всего, вы объявили список Massiv, но внутри вашей рекурсивной функции вы используете глобальную переменную Summa, которая не передается в функцию в качестве аргумента. Кроме того, вам необходимо использовать return в рекурсивной функции, чтобы правильно вернуть результат суммы.

Вот исправленный код:

python
import random # Генерируем список из 10 случайных чисел от 1 до 100 Massiv = [random.randint(1, 100) for _ in range(10)] Summa = 0 def DSumma(x): global Summa if x == len(Massiv): return 0 # Базовый случай: если x достигло длины списка, вернуть 0 Summa += Massiv[x] return DSumma(x + 1) + Massiv[x] # Рекурсивный вызов total_sum = DSumma(0) print('Massiv =', Massiv) print('Summa =', total_sum)

Этот код создает список Massiv из 10 случайных чисел в диапазоне от 1 до 100, а затем использует рекурсивную функцию DSumma для вычисления суммы элементов в списке. Результат суммы выводится на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос