Помогите пожалуйста)Желательно подробно. Ниже записан алгоритм. Получив на ход число x этот алгоритм , запишет две буквы M,L. Напишите число “x” при котором алгоритм с начало напишет число 2, а потом 8 . DIM X, L, M AS INTEGER ...

Помогите пожалуйста)Желательно подробно. Ниже записан алгоритм. Получив на ход число 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.
Гость
Ответ(ы) на вопрос:
Гость
Смотрим на предназначение переменных 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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы