Друзья мои, я и подумать не могла раньше, что такие простенькие примеры мне придется самой за вас решать!
Спешу развеять темноту вашу тёмную и дремучесть дрёмную... :)
Спешу развеять темноту вашу тёмную и дремучесть дрёмную... :)
(задачи В6 для самостоятельного решения с сайта К.Ю.Полякова)
В результате выполнения
фрагмента программы
while n <> 0 do begin
write ( 2*(n mod 5 + 3) );
n := n div 10;
end;
на экран выведено число 10614.
Какое число хранилось до этого в переменной n, если известно, что все цифры в
нем нечетные?
1.
В каком диапазоне
лежат остатки от деления числа на 5 (n
mod 5)? Естественно (от 0..4).
2.
Тогда число ( 2*(n mod 5 + 3) ) может находиться в диапазоне
от 6 до 14.
3.
Исходя из этих
соображений, можно разбить цепочку 10614 на отдельные числа ЕДИНСТВЕННЫМ СПОСОБОМ 10-6-14.
4.
Обозначим n mod 5=
d1, тогда
2*(d1+3)=10, где d1-
ПЕРВАЯ цифра с конца! Выразив ее, находим что d1=2.
Внимание
вопрос, если n mod 5=2, то чему может быть равно n, при условии (…что все цифры в нем нечетные). Ответ
очевиден n=7
(вспоминаем, что эта цифра должна стоять на последнем месте в искомом числе, т.к. 10 печатается первой)
5.
Рассуждая
аналогично, находим среднюю и первую цифру.
6.
Получаем ответ
957.