Помогите пожалуйста)Желательно подробно. Ниже записан алгоритм. Получив ** ход число x...

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

Помогите пожалуйста)Желательно подробно.
Ниже записан алгоритм. Получив на ход число x этот алгоритм , запишет две буквы M,L. Напишите число “x” при котором алгоритм с начало напишет число 2, а потом 8 .
DIM X, L, M AS INTEGER
INPUT X L=0: M=0
WHILE X>0
L=L+1
IF M<(X MOD 10) THEN M=X MOD 10<br> END IF
X=X\10
WEND
PRINT L, M

в паскале:
var x, L, M: integer;
begin
readln(x);
L:=0; M:=0;
while x > 0 do
begin
L:=L+1;
if M < (x mod 10) then begin
M:=x mod 10;
end;
x:= x div 10;
end;
writeln(L);
write(M);
end.


Информатика (17 баллов) | 22 просмотров
0

В условии спрашивается только "найти число x"? Или там было "найти наибольшее число x" или "найти наименьшее число x"?

0

Иначе таких чисел получается 16

0

Наибольшее)

Дан 1 ответ
0 голосов

Смотрим на предназначение переменных L и M:
L - счетчик того, сколько раз выполняется условие цикла (while  x > 0). Т.к. в конце программы L становится равным 2, значит условие цикла (while  x > 0) выполняется 2 раза.
M, судя по условию (if M < x mod 10) - максимальная цифра числа x, т.к. x mod 10 - это остаток от деления числа x на десять.
В конце цикла while x приравнивается x div 10; кроме того, после 2 проходов цикла, x стало равным 0. Это дает нам право считать, что начальное число x было двузначным.
Т.к. в конце программы M становится равным 8, значит максимальная цифра в числе x - это 8.
Значит изначально число x могло быть равно:
18
28
38
48
58
68
78
80
81
82
83
84
85
86
87
88
Т.к. требуется наибольшее, то выбираем 88.

(401 баллов)
0

спасибо большое)

0

А с геометрией не поможешь?)

0

Геометрия не моё