Перейти к содержанию

Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 15, а потом 7

На рисунке на пяти языках записан алгоритм. Получив на вход число 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