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

SForest SForest    1   21.07.2021 22:58    2

Ответы
astasevbogdanp08dn2 astasevbogdanp08dn2  21.08.2021 00:11

ответ: 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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика