• Предмет: Информатика
  • Автор: likanstandoff
  • Вопрос задан 3 месяца назад

Вам дан набор целых чисел размера n (он может содержать одинаковые элементы). Вы должны найти поднабор чисел, где сумма чисел в поднаборе делится на n без остатка и вывести индексы этих чисел в наборе. Если такого набора не существует, вывести −1​

Ответы

Ответ дал: mrgoldenbroerrormine
0

Ответ:

nums = [1, 2, 3, 4, 5, 6]

n = 3

result = [-1]

for i in range(len(nums)):

   for j in range(i, len(nums)):

       subset = nums[i:j+1]

       if sum(subset) % n == 0:

           result = [i+1 for i in range(i, j+1)]

           print(result)

           break

   if result != [-1]:

       break

if result == [-1]:

   print(result)

Объяснение:

Код перебирает все возможные подсписки данного списка целых чисел, проверяет, делится ли сумма текущего подсписка на n, используя оператор модуля (%), если это так, он сохранит индексы из элементов подсписка и распечатайте их. Если такой подсписок не найден, он выведет [-1].

Это решение имеет временную сложность O (n ^ 2), потому что мы используем вложенные циклы для перебора всех возможных подмножеств.


Аноним: Помогите по информатике пожалуйста
Аноним: Помогите по информатике пожалуйста.
Вас заинтересует