Информатика, опубликовано 2018-08-22 19:35:07 by Гость
Помогите пожалуйста)Желательно подробно. Ниже записан алгоритм. Получив на ход число 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 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.
Ответ оставил Гость
Смотрим на предназначение переменных L и M:
L - счетчик того, сколько раз выполняется условие цикла (while x > 0). Т.к. в конце программы L становится равным 2, значит условие цикла (while x > 0) выполняется 2 раза.
M, судя по условию (if M В конце цикла 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.
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.
Форма вопроса доступна на