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

аня2838 аня2838    3   09.06.2019 09:20    0

Ответы
2006Крис 2006Крис  08.07.2020 07:39
Смотрим на предназначение переменных 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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика

Популярные вопросы