Напишите как решать Ниже ** 5 языках программирования записан алгоритм. Получив ** вход...

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

Напишите как решать
Ниже на 5 языках программирования записан алгоритм. Получив на вход число х, этот алгоритм печатает число l. Укажите наибольшее нечетное число х, при вводе которого алгоритм печатает 102.
var x,l,m:integer;
begin
readln(x);
d:=x;
l:=30;
m:=456;
while l<=m do begin<br> l:=l+d;
m:=m-5*d;
end;
writeln(l);
end.
Алгоритм решения нужен


Информатика (19.9k баллов) | 56 просмотров
0

Ответ 9

Дан 1 ответ
0 голосов
Правильный ответ

Алгоритм содержит ошибку: необъявленную переменную d. Фактически она вообще не нужна, потому что d=x и не меняется.
Выводится значение l, которое вычисляется по формуле l=30+kx, где k - количество выполнений тела цикла while.
Получаем уравнение 30 + k·x = 102 → k·x = 72.
Но 72 = 2 × 2 × 2 × 3 × 3 если значение х нечетное, то оно может быть или 3, или 3 × 3 = 9.
В вопросе спрашивается о максимальном х, поэтому проверим, подходит ли х=9.
В этом случае k = 72 / 9 = 8
Значение k определяется условием выполнения цикла l ≤ m,
где m = 456 - 5·x·k.
При k= 8 получаем 102 ≤ 456 - 5×8×9; 102 ≤ 96 - ложно,
но еще при k=7 получаем 30+7×9 ≤ 456-5×7×9; 93 ≤ 141 истинно.

Следовательно, x=9 подходит.

Ответ: 9

(150k баллов)