Ниже записана программа. Получив на вход число x, эта программа печатает два числа L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 5. Паскаль
var x, L, M: integer;
begin readln(x); L:=0; M:=0;
while x > 0 do begin
L:= L + 1; x:= x div 10;
if L mod 2 = 0 then
M:= M + (x mod 10);
end; writeln(L); write(M);
end.
ответ: 500
Объяснение:
1)Число точно больше 100, чтобы L было 3.
2)Какие бы числа мы не ставили на позициях единиц и десятков, результата они никакого не дадут, тк отрезаются командой div
3)Ближайшее необходимое число: 500
Дописал программу, чтобы проверить. Она выводит количество подходящих комбинаций при вводе всех чисел от 1 до 500.
var
x, L, M,count,i: integer;
begin
count:=0;
for i:=1 to 500 do
begin
x:=i; L := 0;M := 0;
while x > 0 do
begin
L := L + 1; x := x div 10;
if L mod 2 = 0 then
M := M + (x mod 10);
end;
//write(L,' ');write(M);
if (L=3) and (M=5) then inc(count);
end;
writeln(count);
end.