desktop/inf.jpg mobile/inf.jpg

Задание 22. Графы. Подсчёт количества программ. ЕГЭ 2023 по информатике

За это задание ты можешь получить 1 балл. На решение дается около 7 минут. Уровень сложности: повышенный.
Средний процент выполнения: 51.9%
Ответом к заданию 22 по информатике может быть цифра (число) или слово.
Разбор сложных заданий в тг-канале

Задачи для практики

Задача 1

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 24.

Решение

Проанализируем, что происходит в результате выполнения данной программы. Для этого в качестве x рассмотрим произвольное целое число, входящее в диапазон типа объявленной переменной (в нашем случае -32768 ≤ x ≤ 32767), например, 412.

Выполняемый оператор x a b
readln(x) 412 - -
a := 0 412 0 -
b := 0 412 0 0
логическое условие x > 0 истинно (412 > 0)
a := a + 1 412 1 0
b := b + 2*(x mod 10) 412 1 4(= 0 + 2 · 2)
x := x div 10 41 1 4
логическое условие x > 0 истинно (41 > 0)
a := a + 1 41 2 4
b := b + 2*(x mod 10) 41 2 6(= 4 + 2 · 1)
x := x div 10 4 2 2
a := a + 1 4 3 2
b := b + 2*(x mod 10) 4 3 14(= 6 + 2 · 4)
x := x div 10 0 3 14
логическое условие x > 0 истинно (4 > 0)
логическое условие x > 0 ложно (0 ≯ 0)
writeln(a) 0 3 14
writeln(b) 0 3 14

Заметим, что a принимает значение, соответствующее количеству разрядов в числе x, а переменная b - сумме удвоенных цифр числа x.

Из условия задачи следует: 1) a = 3, значит, исходное число x - трёхзначное; 2) b = 24, значит, в исходном числе x сумма удвоенных цифр равна 24. Следовательно, сумма цифр числа x равна 12.

В наибольшем из таких чисел x цифра, стоящая в разряде сотен, должна быть наибольшая, то есть 9. Тогда сумма цифр, стоящих в разрядах десятков и единиц, равна 12 - 9 = 3. В разряде десятков должна быть наибольшая цифра, которая в сумме с цифрой разряда единиц даёт 3, то есть в разряде десятков должна быть цифра 3. Следовательно, в разряде единиц - 0. Значит, числом x, удовлетворяющим условию задачи, является 930.

Ответ: 930.

Ответ: 930
Показать решение
Полный курс

Задача 2

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 80. Укажите такое (то есть большее 80) наименьшее число x, при вводе которого алгоритм печатает 21.

Решение

Проанализируем работу алгоритма (на примере программы на языке Паскаль). Условный оператор if L mod 2 <> 0 then M := 42; изменяет только начальное значение переменной M. К роли этого оператора мы вернёмся позже.

Цикл while выполняется до тех пор, пока значения переменных L и M не станут равными. На каждой итерации цикла изменяется значение той из переменных (L или M), которая больше. При этом из большей переменной вычитается меньшая. В результате выполнения цикла получим:

$\{\table\ L↖{~} = L - k · M↖{~}; \ M↖{~} = M - t · L↖{~};$

где $L↖{~}$, $M↖{~}$ - значения переменных L и M, полученные после выполнения алгоритма; L,M - исходные значения этих переменных; k, t - натуральные числа.

По условию в результате выполнения программы будет напечатано число 21. Так как выход из цикла происходит, когда $L↖{~} = M↖{~}$, то $L↖{~} = M↖{~} = 21$.

Получаем:

$\{\table\ 21 = L - 21 · k; \ 21 = M - 21 · t;$ $\{\table\ L = 21 · k + 21; \ M = 21 · t + 21;$

Следовательно, исходное значениеM должно делиться на 21. Из двух возможных значений M (71 и 42) этому условию удовлетворяет число 42. Так как это значение переменная M принимает, если l нечётное, при этом L = x, то x - нечётно и x = 21 · k + 21.

Требуется найти наименьшее x > 80. То есть должно выполняться неравенство 21 · k + 21 > 80. Получаем k > 2;8. Переменная x принимает наименьшее значение при k = 3. В этом случае x = 21 · 3 + 21 = 84.

Это значение чётно, и следовательно, оно не удовлетворяет условию задачи. При k = 4, x = 21 · 4 + 21 = 105 - удовлетворяет условию задачи.

Ответ: 105.

Ответ: 105
Показать решение
Полный курс

Задача 3

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает число d. Укажите такое наибольшее трёхзначное число x, при вводе которого алгоритм печатает трёхзначное число, оканчивающееся на 2.

Решение

Код программы для нахождения ответа на С++:

bool f(int x){
int d = 0;
while (x > 0){
d = d * 10 + x % 3;
x /= 3;
}
if (d / 100 != 0 && d / 1000 == 0 && d % 10 == 2)
return true;
else
return false;
}

int main() {
for (int i = 1000; i >= 100; --i)
if (f(i)) {
cout << i << " ";
break;
}
return 0;
}


Программа выдаст результат: 702

Ответ: 702
Показать решение
Полный курс

Задача 4

На рисунке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 15, а потом 7.

Решение

Проанализируем, что происходит в результате выполнения данной программы. Для этого в качестве x рассмотрим произвольное целое число, входящее в диапазон типа объявленной переменной (в нашем случае −32768 ≤ x ≤ 32767), например, 412.

Выполняемый оператор x a b k
readln(x) 412
a := 0 412 0
b := 10 412 0 10
логическое условие x > 0 истинно (412 > 0)
k := x mod 10 412 0 10 2
a := a + k 412 2 10 2
логическое условие k < b истинно (2 < 10)
b := k 412 2 2 2
x := x div 10 41 2 2 2
логическое условие x > 0 истинно (41 > 0)
k := x mod 10 41 2 2 1
a := a + k 41 3 (= 2 + 1) 2 1
логическое условие k < b истинно (1 < 2)
b := k 41 3 1 1
x := x div 10 4 3 1 1
логическое условие x > 0 истинно (4 > 0)
k := x mod 10 4 3 1 4
a := a + k 4 7 (= 3 + 4) 1 4
логическое условие k < b ложно (4 6< 1)
x := x div 10 0 7 1 4
логическое условие x > 0 ложно (0 6> 0)
writeln(a) 0 7 1 4
writeln(b) 0 7 1 4

Заметим, что a принимает значение, равное сумме цифр числа x, а переменная b — наименьшей цифре числа x.

Из условия задачи имеем:

1) a = 15, значит, сумма цифр исходного числа x равна 15;

2) b = 7, значит, в исходном числе x наименьшая цифра равна 7.

В наименьшем из таких чисел x цифра, стоящая в старшем разряде, должна быть наименьшей, то есть 7 (мы определили, что эта цифра наименьшая в числе). Тогда сумма цифр, расположенных правее 7 равна 15 − 7 = 8. Так как 8 < 10, а нам требуется найти наименьшее число, то исходное число является двузначным, и в разряде единиц у него стоит 8.

Значит, числом x, удовлетворяющим условию задачи, является 78.

Ответ: 78
Показать решение
Полный курс

Задача 5

На рисунке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 3, а потом 7.

Решение

Решение на С++

for (int i = 1; i < 10000; ++i) {
int x = i, a = 0, b = 0;
while (x > 0){
a++;
if (x % 2 != 0) b++;
x /= 2;
}
if (b == 3 && a == 7)
cout << i << " "; // выводим то, что "вводили"
}
Ответ: 67
Показать решение
Полный курс

Задача 6

На рисунке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее из таких чисел x, при вводе которого алгоритм печатает сначала 2, а потом 5.

Решение

Проанализируем работу алгоритма.

На каждой итерации цикла значение переменной a увеличивается на 1.

Далее значение этой переменной не изменяется. Следовательно, по окончании работы программы значение переменной a будет равно количеству итераций цикла. Согласно условию a = 5.

Цикл выполняется до тех пор, пока значение переменной x > 0. На каждой итерации цикла переменная x с помощью оператора целочисленного деления на 2 (x:=x div 2) уменьшается в два раза. Так как a = 5, то исходное число не превышает 25 = 32 и больше, чем 24 = 16.

Условие x mod 2 = 0 проверяет, является ли число x чётным. В том случае, когда условие истинно, к переменной b прибавляется единица (b:=b+1). Следовательно, в результате работы алгоритма значение переменной b будет равно количеству чётных чисел, полученных в результате последовательного деления исходного числа x на 2.

Рассмотрим случай, когда исходное число x = 32. В этом случае будет выполнено 6 итераций цикла while, в результате переменная x будет последовательно принимать значения 32, 16, 8, 4, 2, 1. В результате выполнения алгоритма переменная a примет значение 6, переменная b — 5.

Если исходное число x = 31, то получим последовательность: 31, 15, 7, 3, 1. В этом случае получим a = 5, b = 0.

Далее, когда мы последовательно будем уменьшать исходное число x от 30 до 16, значение переменной a будет равно 5, а значение переменной b будет изменяться в диапазоне от 0 до 4.

Так при x = 30, получим последовательность: 30, 15, 7, 3, 1. В этом случае a = 5, b = 1.

При x = 29 получим последовательность: 29, 14, 7, 3, 1. В этом случае a = 5, b = 1.

При x = 28 получим последовательность: 28, 14, 7, 3, 1. В этом случае a = 5, b = 2.

Согласно условию требуется указать наибольшее из таких чисел x, при вводе которого после окончания выполнения алгоритма b = 2, a = 5. Искомым числом является 28.

Ответ: 28
Показать решение
Полный курс

Задача 7

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает число d. Укажите такое наименьшее число x, при вводе которого алгоритм печатает сначала 4, а затем 12.

Решение
Ответ: 224
Показать решение
Полный курс

Задача 8

На картинке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 6.

Решение
Ответ: 35
Показать решение
Полный курс

Задача 9

На картинке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: K и R. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 4, а потом 3.

Решение
Ответ: 1003
Показать решение
Полный курс

Задача 10

На картинке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 3, а потом 16.

Решение
Ответ: 149
Показать решение
Полный курс

Задача 11

На картинке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 80. Укажите такое (то есть большее 80) наименьшее число x, при вводе которого алгоритм печатает 21.

Решение
Ответ: 105
Показать решение
Полный курс

Задача 12

На рисунке на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 90. Укажите такое (то есть большее 90) наименьшее число x, при вводе которого алгоритм печатает 20.

Решение
Ответ: 100
Показать решение
Полный курс
Показать еще

Готовим к ЕГЭ на 85+ баллов и побеждаем лень

Каждый месяц 12 онлайн-занятий в дружелюбной атмосфере + 16 домашних работ с жесткими сроками.
Не готовишься — вылетаешь.

Подробнее о курсе