Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2714958
А
Аноним
01 февраля 2025 07:01 · публичный вопрос
А
Аноним

Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в…

Запрос пользователя

Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в которых хотя бы один из двух элементов делится на 3, а их сумма делится на 5. В ответе запишите два числа: сначала количество найденных пар, а затем  — максимальную сумму элементов таких пар. Задание 17 Например, в последовательности (2 3 7 8 9) есть две подходящие пары: (2 3) и (3 7), в ответе для этой последовательности надо записать числа 2 и 10.   Ответ: Спрятать решение Решение. Решим задачу перебором. Приведём решение данной задачи на языке PascalABC: var x, y, count, maxsum: integer; f: text; begin assign(f,'C:\17.txt'); reset(f); count := 0; maxsum := 0; readln(f, x); while not eof(f) do begin readln(f, y); if ((x mod 3 = 0) or (y mod 3 = 0)) and ((x + y) mod 5 = 0) then begin count := count + 1; if (x + y > maxsum) then maxsum := x + y; end; x := y; end; writeln(count, ' ', maxsum); end.   Результат работы программы  — 635 19730.   Ответ: 635 19730.   Приведём решение Павла Шостка на языке PascalABC: ## var a:=readalltext('17.txt').ToIntegers.Pairwise. Where(\(x,y)->(x.divs(3) or y.divs(3)) and (x+y).divs(5)); a.Count.Println; a.Select(\(x,y)->x+y).Max.Print; end.   Приведём решение на языке Python. f=open('17_38951.txt') Sum=0 Mx=0 x=int(f.readline()) for y in f: y=int(y) if (((x+y)%5==0) and ((x%3==0) or (y%3==0))): Sum += 1 Mx = max(Mx,x+y) x=y print(Sum,Mx) Раздел кодификатора ФИПИ: 1.7.2 Основные конструкции языка программирования. Система программирования Спрятать решение · Помощь Наверх О проекте · Редакция · Правовая информация · О рекламе © Гущин Д. Д., 2011—2025 Для персонализации сервисов и удобства работы на сайте используются пр

Ответ нейросети
01 февраля 2025 07:01

Для решения этой задачи мы будем использовать перебор пар последовательности чисел и проверку на выполнение заданных условий.

Алгоритм решения

  1. Чтение данных: Мы будем считывать последовательность неотрицательных целых чисел из файла.
  2. Перебор пар: Затем последовательно будем проверять каждую пару из двух идущих подряд элементов.
  3. Проверка условий: Для каждой пары будем проверять, выполняются ли условия:
    • хотя бы одно из чисел в паре делится на 3,
    • сумма чисел в паре делится на 5.
  4. Учет результата: Если оба условия выполнены, мы будем:
    • увеличивать счётчик пар,
    • проверять, является ли сумма текущей пары максимальной, и обновлять максимальную сумму при необходимости.
  5. Вывод результата: В конце мы выведем количество найденных пар и максимальную сумму.

Пример на языке Python

Давайте рассмотрим, как это можно реализовать на Python:

# Открываем файл с числами
with open('17.txt') as f:
    # Считываем первое число
    x = int(f.readline())
    # Инициализируем переменные для подсчета пар и их максимальной суммы
    count = 0
    max_sum = 0
    
    # Проходим по остальным числам в файле
    for line in f:
        y = int(line)
        # Проверяем условия
        if (x % 3 == 0 or y % 3 == 0) and ((x + y) % 5 == 0):
            count += 1  # Увеличиваем счетчик пар
            max_sum = max(max_sum, x + y)  # Обновляем максимальную сумму, если нужно
        x = y  # Обновляем x для следующей итерации

# Выводим результат: количество пар и максимальная сумма
print(count, max_sum)

Объяснение кода

  1. Чтение файла: Мы открываем файл 17.txt и считываем первое число, которое сохраняем в переменную x.
  2. Цикл по файлу: Мы используем цикл for для считывания остальных чисел. В каждой итерации мы сохраняем текущее число в переменной y.
  3. Условия: Внутри цикла проверяем, делится ли хотя бы одно из чисел на 3 и делится ли сумма чисел на 5. Если оба условия выполняются, увеличиваем счетчик пар count.
  4. Максимальная сумма: Если сумма текущей пары превышает текущую максимальную сумму, мы обновляем max_sum.
  5. Вывод: После выхода из цикла мы выводим общее количество пар и максимальную сумму.

Таким образом, к концу программы мы получим искомые результаты. Это решение просто и эффективно для нашей задачи.

Заключение

Ввод данных и условия задачи требуют аккуратного подхода и проверки. Всегда важно тщательно тестировать программу, чтобы убедиться, что она работает как ожидается. Мы также можем адаптировать решение на другом языке программирования, как было показано в изначальном задании.