Вам дан набор целых чисел размера n (он может содержать одинаковые элементы). Вы должны найти поднабор чисел, где сумма чисел в поднаборе делится на n без остатка и вывести индексы этих чисел в наборе. Если такого набора не существует, вывести −1
Ответы
Ответ дал:
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), потому что мы используем вложенные циклы для перебора всех возможных подмножеств.
Аноним:
Помогите по информатике пожалуйста
Вас заинтересует
2 месяца назад
2 месяца назад
3 месяца назад
3 месяца назад
1 год назад
1 год назад
7 лет назад