Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b.
Укажите наименьшее трёхзначное число x, при котором после выполнения алгоритма будет напечатано сначала 2, а потом ещё раз 2.
Бейсик |
Паскаль |
DIM X, Y, A, B AS INTEGER A = 0 B = 0 INPUT X WHILE X > 0 Y = X MOD 10 IF Y >= 2 THEN A = A + 1 IF Y <= 7 THEN B = B + 1 X = X \ 10 WEND PRINT A PRINT 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 >= 2 then a := a + 1; if y <= 7 then b := b + 1; x := x div 10 end; writeln(a); writeln(b) end. |
Си |
Алгоритмический язык |
#include int main() { int x, y, a, b; a = 0; b = 0; scanf("%d", &x); while (x > 0) { y = x % 10; if (y >= 2) a = a + 1; if (y <= 7) b = b + 1; x = x / 10; } printf("%d\n%d\n", a, b); } |
алг нач цел x, y, a, b a := 0 b := 0 ввод x нц пока x > 0 y := mod(x, 10) если y >= 2 то a := a + 1 все если y <= 7 то b := b + 1 все x := div(x, 10) кц вывод a, нс, b кон |