Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает числа: a и b.
Укажите наибольшее положительное пятизначное число x, при котором после выполнения алгоритма будет напечатано сначала 3, а потом 4.
| Бейсик | Python |
|---|---|
DIM X, Y, A, B AS INTEGER A = 0 B = 0 INPUT X WHILE X > 0 Y = X MOD 10 IF Y > 4 THEN A = A + 1 IF Y < 7 THEN B = B + 1 X = X \ 10 WEND PRINT A PRINT B
| a = 0 b = 0 x = int(input()) while x > 0: y = x % 10 if y > 4: a = a+1 if y < 7: b = b+1 x = x // 10 print(a) print(b)
|
| Алгоритмический язык | Паскаль |
алг нач цел x, y, a, b a := 0 b := 0 ввод x нц пока x > 0 y := mod(x, 10) если y > 4 то a := a + 1 все если y < 7 то b := b + 1 все x := div(x, 10) кц вывод a, нс, b кон | var x, y, a, b: integer; begin a := 0; b := 0; readln(x); while x > 0 do begin y := x mod 10; if y > 4 then a := a + 1; if y < 7 then b := b + 1; x := x div 10 end; writeln(a); writeln(b) end. |
| Си++ | |
#include <iostream> using namespace std; int main() { int x, y, a, b; a = 0; b = 0; cin >> x; while (x > 0) { y = x % 10; if (y > 4) a = a + 1; if (y < 7) b = b + 1; x = x / 10; } cout << a << endl << b << endl; } | |
а − количество цифр в числе, больших, чем 4. b − количество цифр в числе, меньших, чем 7.
В нашем числе получается одна цифра не меньше 7, две цифры не больше, чем 4, и ещё две от 5 до 6.
Максимальное число, подходящее под все эти условия — 96644.
Ответ: 96644.
Приведём другое решение на языке Python.
for i in range(100000, 1, -1):
x = i
a = 0
b = 0
while x > 0:
y = x % 10
if y > 4:
a = a + 1
if y < 7:
b = b + 1
x = x // 10
if a == 3 and b == 4:
print(i)
break


Еще подходит число 99664. В таком случае цифры 9,9,6,6 больше четырех = 4 кол-ва.
А цифры 6,6,4 меньше семи = 3 кол-ва.
Должно быть три цифры, больших четырёх, и четыре цифры, меньших семи, а не наоборот.