Контрольные тренировочные задания
(решения)
Часть 1
Задание 20
Решение примера 2
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное число x, этот алгоритм печатает число R. Укажите такое число x, при вводе которого алгоритм печатает двузначное число, сумма цифр которого равна 16. Если таких чисел x несколько, укажите наименьшее из них.
Ответ: ___________________________.
Решение.
Рассмотрим наше задание на примере языка программирования Паскаль.
var
x,d,R: longint;
begin
readln(x);
R := 0;
while x>0 do
begin
d := x mod 10;
R := 10*R + d;
x := x div 10
end;
writeln(R)
end.
Проанализируем работу программы.
readln(х) — вводим любое число, например 264
R := 0 — начальное значение R — 0
1) while x>0 do — пока х>0 выполняем тело цикла (264>0)
d := x mod 10 — остаток от деления нашего числа 264 на 10 (d := 4)
R := 10*R + d — выполняем вычисления 10*0+4=4 (R := 4)
x := x div 10 — целочисленное деление нашего числа 264 на 10 (x := 26)
2) while x>0 do — пока х>0 выполняем тело цикла (26>0)
d := x mod 10 — остаток от деления числа 26 на 10 (d := 6)
R := 10*R + d — выполняем вычисления 10*4+6=46 (R := 46)
x := x div 10 — целочисленное деление числа 26 на 10 (x := 2)
3) while x>0 do — пока х>0 выполняем тело цикла (2>0)
d := x mod 10 — остаток от деления числа 2 на 10 (d := 2)
R := 10*R + d — выполняем вычисления 10*46+2=462 (R := 462)
x := x div 10 — целочисленное деление числа 2 на 10 (x := 0)
4) условие while x>0 больше не выполняется (0>0) — быть не может
end — цикл заканчивается
writeln(R) — на экран выводится R (462)
end — конец программы
Вывод:
Эта программа выводит на экран, введенное нами число, в обратном порядке (задом наперед). И для того, чтобы сумма цифр в числе R была равна 16, необходимо, чтобы число R состояло из 2-х цифр 7 и 9 (возможны 2 варианта: 79 и 97)
число R=79 можно получить из числа х, равного 97
число R=97 можно получить из числа х, равного 79 (наименьшее х)
Ответ: 79
Возврат на страницу Решение примеров части 1 задание 20