Пример задания.
Ниже на четырёх языках записан алгоритм. Получив на вход число х, этот алгоритм печатает три числа К, М и L. Укажите наименьшее число х, при вводе которого алгоритм печатает сначала 3, потом 2, потом ещё 2.
var x, у, K, L, M: integer;
begin
readln(x);
К : = 0 ;
L : = 0 ;
M : = 0 ;
while x > 0 do
begin
у : = x mod 10;
К := К + 1;
if у >= 5 then
L : = L + 1;
if у <= 8 then
M := M + 1;
x : = x div 10 ;
end;
writeln(K, ' ' ,L, ' ' , M) ;
end.
Нам необходимо найти такое число, при котором к=3, l=2, m=2.
Так как все переменные изначально равны 0 необходимо, чтобы выполнились условия "if у >= 5" и " if у <= 8" причем выполнится оно должно 2 раза (l=2, m=2).
Чтобы к=3, а l=2, m=2, то число должно быть трехзначным, причем одно из условий не должно выполнится по одному разу.
Выражение у : = x mod 10; дает на понять, что в конце числа х должна стоять цифра, большая или равная 5 и меньшая или равная 8. Так как надо чтобы один раз условие не выполнилось, то эта цифра - 9 (если поставить 9 на следующие раз число значительно увеличится). В этом случае l увеличится, и станет равной 1
Далее должны выполнится оба условия, то есть x ∈ [5;8] - минимальное число в этом случае 5, пока число выглядит так - у59, а l=2, m=1.
Осталась последняя цифра, она должна не увеличить L, но увеличить m, то есть цифра должна быть меньше 5. Самая маленькая цифра в этом случае - 1, таким образом число - 159.
Ответ 159.
Пример задания.
Ниже на четырёх языках записан алгоритм. Получив на вход число х, этот алгоритм печатает число М. Укажите число х, при вводе которого алгоритм печатает 126.
var x, y, L, M: integer;
begin
readln(x);
L : = 0; M : = 0 ;
У := 7;
if x mod 2 = 0 then begin
У := 9;
end;
while L < x do
begin
M : = M + у ;
L : = L + 1;
end;
write(M);
end.
Итак, посмотрим на условие:
if x mod 2 = 0
То есть число должно делиться на 2.
while L < x -цикл будет продолжаться до тех пор, пока l меньше x, при этом L наращивается на единицу каждый шаг, причем этих шагов будет ровно х. Теперь посмотрим на M - переменная увеличивается на y (то есть на 9) каждый шаг.
Если в итоге M=126, то количество шагов (и нужное нам х) найти очень просто:
126/9=14
Ответ 14.