Ниже на четырех языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5.
| C++ | Python |
|---|---|
#include <iostream> using namespace std;
int main() { int x, L, M, Q; cin >> x; Q = 9; L = 0; while (x >= Q){ L = L + 1; x = x - Q; } M = x; if (M < L){ M = L; L = x; } cout << L << endl << M << endl; return 0; }
| x = int(input()) Q = 9 L = 0 while x >= Q: L = L + 1 x = x - Q M = x if M < L: M = L L = x print(L) print(M)
|
| Паскаль | Алгоритмический язык |
var x, L, M, Q: integer; begin readln(x); Q := 9; L := 0; while x >= Q do begin L := L + 1; x := x - Q; end; M := x; if M < L then begin M := L; L := x; end; writeln(L); writeln(M); end.
| алг нач цел x, L, M, Q ввод x Q := 9 L := 0 нц пока x >= Q L := L + 1 x := x - Q кц M := x если M < L то M := L L := x все вывод L, нс, M кон |
Данный алгоритм ищет два числа числа: целая часть от деления значения x на 9 и остаток от деления значения x на 9. Далее, если остаток от деления числа x на 9 меньше, чем целая часть от этого деления, алгоритм меняет местами значения L и M.
Заметим, что в результате работы алгоритма на экран будут выведены два числа: 4 и 5. Значит, чтобы найти наибольшее число x, число 5 должно являться целой частью от деления x на 9, а число 4 — остатком от деления x на 9. Таким образом, получаем ответ — x = 9 · 5 + 4 = 49.
Ответ: 49.
Приведём другое решение на языке Python.
for i in range(10000, 0, -1):
x = i
Q = 9
L = 0
while x >= Q:
L = L + 1
x = x - Q
M = x
if M < L:
M = L
L = x
if L == 4 and M == 5:
print(i)
break

