Пожалуйста, объяните подробно. Ниже записана программа. Получив на вход число x , эта

Пожалуйста, объяните досконально. Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите величайшее из таких чисел x, при вводе которых метод печатает поначалу 3, а потом 7.

var x, L, M: integer;

begin

readln(x);

L:=0; M:=0;

while x gt; 0 do begin

L:= L + 1;

if x mod 2 = 0 then

M:= M + (x mod 10) div 2;

x:= x div 10;

end;

writeln(L); write(M);

end.

Задать свой вопрос
1 ответ
В условиях задачки сказано, что сначало выведется L=3, а потом M=7. По программке видно, что для того, чтобы L равнялось 3 нужно 3 итерации цикла while. По строке "x:= x div 10;" видно, что число x обязано быть трёхзначным для того, чтоб L = 3. С этим разобрались. Сейчас к числу M. Оно зависит только от этой строчки "M:= M + (x mod 10) div 2;". Это означает, что возьмётся часть слева и поделится на 2, а затем прибавится к M. И только при условии, что цифра числа, на которой тормознул цикл while, чётная. Способом подбора можно отыскать такое очень вероятное трёхзначное число. Это 149.
Панченков Даниил
вообще-то ответ: 986
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт