Ниже записана программа. Получив ** вход число , эта программа печатает два числа, и ....

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

Ниже записана программа. Получив на вход число , эта программа печатает два числа, и . Укажите наименьшее из таких чисел , при вводе которых алгоритм печатает сначала 3, а потом 10.var x, a, b : integer;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
a := a + 1;
b := b * (x mod 8);
x := x div 8;
end;
writeln(a); write(b);
end.


Информатика (17 баллов) | 64 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Код
var
    x, a, b,i: integer;

begin
    for i := 8 * 8 + 1 to 8 * 8 * 8 do
    begin
        x:=i;
        a := 0;
        b := 1;
        while x > 0 do
        begin
            a := a + 1;
            b := b * (x mod 8);
            x := x div 8;
        end;
        if (a = 3) and (b = 10) then
            writeln(i);
    end;
end.

вывод
85
106
141
169
330
337

что делает алгоритм?  Считает в восьмиричном числе кол-во знаков (а) и произведение чисел (b)




(53.1k баллов)