ОЧЕНЬ СРОЧНО !!! Получив число х, этот алгоритм печатает два числа L и M. Укажите...

0 голосов
54 просмотров

ОЧЕНЬ СРОЧНО !!!
Получив число х, этот алгоритм печатает два числа L и M. Укажите наибольшее х , при вводе которого алгоритм печатает сначала 7 а потом 8.
VAR
x,L,M:integer;
begin
readln(x);
L:=0;
M:=0;
while x>0 do
begin
M:=M+1;
if x mod 2<>0 then
L:=L+1;
x:=x div 2;
end;
writeln(L);
writeln(M);
end.


Информатика (37 баллов) | 54 просмотров
Дан 1 ответ
0 голосов

//Так как я сегодня у мамы гуманитарий, считать мне всё это лень
//Преобразую код так, чтобы он сам возвращал мне все варианты
//Pascal ABC.NET Версия 2.2 Сборка 790
VAR x,L,M,g:integer;
begin
for x:=1 to 10000 do
begin;
L:=0;
M:=0;
g:=x;
while g>0 do
begin
M:=M+1;
if g mod 2<>0 then L:=L+1;
g:=g div 2;
end;
if (l=7) and (m=8) then writeln(x);
end;
end.

Возвращаемые значения:
191
223
239
247
251
253
254

Ответ: 254

(38.6k баллов)