Форум » Динамическое программирование » Задача 18-45 (2652) » Ответить

Задача 18-45 (2652)

LaviTa: Добрый день. Не сходится с ответом задача. Дана последовательность натуральных чисел. Рассматриваются всевозможные пары чисел, порядковые номера которых отличаются не более чем на 6. Определите количество таких пар, для которых сумма чисел чётная. Для решения написала программу: [pre2] d = [ int(x) for x in open("18-45.txt") ] n = len(d) count=0 for i in range (n-6): for j in range (i+1, i+7): if (d[ i]+d[j])%2==0: count+=1 print (count)[/pre2] Программа выдает 2930, в ответе 2936. Во всех аналогичных задачах данная программа с поправкой на условие выдает правильный ответ. Что не так с этой программой?

Ответов - 3

cabanov.alexey: Вы теряете пары в конце, когда i > n-6

Максим Фирсов: В первом цикле Вы ставите ограничение на 1 ваше число, поэтому оно не может быть в последней шестерке. [pre2] d = [ int(x) for x in open("18-45.txt") ] n = len(d) count=0 for i in range (n-1): for j in range (i+1, i+7): try: if (d[ i ]+d[ j ])%2==0: count+=1 except: continue print (count) [/pre2]

LaviTa: Поняла, спасибо!




полная версия страницы