Главная / ЕГЭ Информатика / Задание №22 / ID 33707
ID 33707 ЕГЭ Информатика Линия №22 СдамГИА ID: 7792 Анализ информационных моделей
✈️ TG ВК Следующая ⏭️
Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает числа: a и b. Укажите наибольшее четырехзначное число x, при вводе которого алгоритм печатает сначала 5, а потом 7.

Бейсик | Python

DIM X, Y, A, B AS INTEGER
A = 10
B = 0
INPUT X
WHILE X > 0
    Y = X MOD 10
    X = X \ 10
    IF Y B THEN B = Y
WEND
PRINT A
PRINT B

|

a = 10
b = 0
x = int(input())
while x > 0:
    y = x % 10
    x = x // 10
    if y b:
        b = y
print(a)
print(b)

Паскаль | Алгоритмический язык

var x, y, a, b: integer;
begin
    a := 10;
    b := 0;
    readln(x);
    while x > 0 do
        begin
            y := x mod 10;
            x := x div 10;
            if y b then
                b := y;
        end;
writeln(a);
writeln(b)
end.

|

алг
нач
цел x, y, a, b
a := 10
b := 0
ввод x
нц пока x > 0
    y := mod(x, 10)
    x := div(x, 10)
    если y b
        то b := y
    все
кц
вывод a, нс, b
кон

Си++

#include <iostream>
using namespace std;
int main()
{
    int x, y, a, b;
    a = 10;
    b = 0;
    cin >> x;
    while (x > 0)
    {
        y = x % 10;
        x = x / 10;
        if (y b)
            b = y;
    }
    cout
💡 Пошаговый разбор и решение:
Рассмотрим цикл, число шагов которого зависит от изменения переменной x:
while x > 0 do begin
y := x mod 10;
x:= x div 10;
...
end;
Т. к. оператор div возвращает целую часть от деления, то при делении на 10 это = сильно отсечению последней цифры. Следовательно, цикл выполнится четыре раза.
В переменную a записывается остаток от деления числа x на 10 при условии, что этот остаток меньше числа уже записанного в переменной a. В переменную b записывается остаток от деления числа x на 10 при условии, что этот остаток больше числа уже записанного в переменной b. Таким образом, в переменную a записывается наименьшая цифра числа x, а в переменную b  — наибольшая. Значит, наибольшее число, удовлетворяющее условию задачи  — 7775.

Ответ: 7775.

Приведём другое решение на языке Python.

for i in range(10000, 1, -1):
a = 10
b = 0
x = i
while x > 0:
y = x % 10
x = x // 10
if y b:
b = y
if a == 5 and b == 7:
print(i)
break
Правильный ответ: 7775
📚 Похожие разобранные задания по предмету:
ID 33662 • Задание №22
Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два чис...
Смотреть разбор ↗
ID 33117 • Задание №19
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, п...
Смотреть разбор ↗
🔗 Другие задания линии №22 по предмету Информатика:
ID 33548 В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят... ID 33549 В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят... ID 33550 В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят... ID 33551 В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят... ID 33552 В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят...
← Предыдущее задание 📚 Все задания по предмету Следующее задание →