ALEXMATH

Информатика. ЕГЭ

Задания для подготовки

Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников

Перейти к заданиям

Задание 17. Информатика. ЕГЭ. Поляков-7681

Просмотры: 2726
Изменено: 1 февраля 2025

(К. Багдасарян) В файле содержится последовательность натуральных чисел, не превышающих \(1000\). Определите количество пар последовательности, у которых старшие разряды обоих чисел совпадают, хотя бы одно из чисел оканчивается на \(7\) и является трёхзначным числом, а их сумма меньше максимального элемента последовательности, оканчивающегося на \(7\). В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Решение:

Python


def mx_raz(n):
    while n > 9:
        n //= 10
    return n

def valid(a, b):
    return mx_raz(a) == mx_raz(b) and any(x % 10 == 7 and 99 < x < 1000 for x in [a, b])

base = ''
nums = [int(x) for x in open(base + '17.txt')]
max_el = max([x for x in nums if x % 10 == 7])
max_sum, q = 0, 0

for x, y in zip(nums, nums[1:]):
    if valid(x, y) and x + y < max_el:
        q += 1
        max_sum = max(max_sum, x + y)

print(q, max_sum)

C++


#include<iostream>
#include<fstream>
#include<vector>
#include<string>

using namespace std;

int mx_raz(int n) {
    while (n > 9)
        n /= 10;
   return n;
}

bool valid(int a, int b) {
  return mx_raz(a) == mx_raz(b) && (a % 10 == 7 && a > 99 && a < 1000 ||
                                    b % 10 == 7 && b > 99 && b < 1000);
}

int32_t main() {
    string base = "";
    vector<int> nums;
    int max_el = 0, max_sum = 0, q = 0;
    ifstream in(base + "17.txt");

    while(!in.eof()) {
        int t;
	in >> t;
        nums.push_back(t);
        if (t % 10 == 7)
            max_el = max(max_el, t);
    }

    for(int i = 0; i < nums.size() - 1; i++)
        if (valid(nums[i], nums[i+1]) && nums[i] + nums[i+1] < max_el) {
            q++;
            max_sum = max(max_sum, nums[i] + nums[i+1]);
        }

    cout << q << " " << max_sum << '\n';
}

Ответ: \(3 \,\, 1027\)

Обсуждение задания

Здесь пока нет ни одного комментария. Будьте первым!

kege1
kege2
kege3
Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене.

Новое видео

Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»

Поддержать автора сайта!

Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.

Совершая донат, вы соглашаетесь с Условиями использования

Расписание пробников Статграда в 2026/27 учебном году