Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 5, а потом 8.
| Бейсик | Python |
|---|---|
DIM X, L, M, K AS INTEGER INPUT X K = 9 L = 0 WHILE X >= K L = L + 1 X = X - K WEND M = X IF M < L THEN M = L L = X ENDIF PRINT L PRINT M
| x = int(input()) K = 9 L = 0 while x >= K: L = L + 1 x = x - K M = x if M < L: M = L L = x print(L) print(M)
|
| Паскаль | Алгоритмический язык |
var x, L, M, K: integer; begin readln(x); K := 9; L := 0; while x >= K do begin L := L + 1; x := x - K; end; M := x; if M < L then begin M := L; L := x; end; writeln(L); writeln(M); end.
| алг нач цел x, L, M, K ввод x K := 9 L := 0 нц пока x >= K L := L + 1 x := x - K кц M := x если M < L то M := L L := x все вывод L, нс, M кон |
| Си++ | |
#include <iostream> using namespace std; int main() { int x, L, M, K; cin >> x; K = 9; L = 0; while (x >= K){ L = L + 1; x = x - K; } M = x; if(M < L){ M = L; L = x; } cout << L << endl << M endl; }
| |
Можно заметить, что в конце алгоритма если M < L, то мы меняем L и M местами.
Поэтому нам достаточно рассмотреть 2 случая:
1) После выполнения while, M = 8, а L = 5.
Тогда цикл выполнится 5 раз, и x станет равен 5. Значит, до цикла
2) После выполнения while M = 5, а L = 8.
Тогда цикл выполнится 8 раз, и x станет равен 3. Значит, до цикла
Ответ: 53.
Приведём другое решение на языке Python.
for i in range(10000):
x = i
K = 9
L = 0
while x >= K:
L = L + 1
x = x - K
M = x
if M < L:
M = L
L = x
if L == 5 and M == 8:
print(i)
break

