СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Каталог заданий.
Посимвольная обработка восьмеричных чисел

Пройти тестирование по этим заданиям
Вернуться к каталогу заданий
Версия для печати и копирования в MS Word
1
Задание 20 № 6781

Ниже на четырёх языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 3, а потом 2.

 

БейсикПаскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

WHILE X > 0

    A = A+1

    IF B < (X MOD 8) THEN

        B = X MOD 8

    END IF

    X = X \ 8

WEND

PRINT A

PRINT B

var x, a, b: integer;

    begin

    readln(x);

    a:=0; b:=0;

    while x>0 do

        begin

            a:=a + 1;

            if b < (x mod 8)

            then

                b:=x mod 8;

            x:=x div 8;

        end;

    writeln(a); write(b);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=0;

    while (x>0){

        a = a+1;

        if (b < (x%8){

            b = x%8;

        }

        x = x/8;

    }

    cout << a << endl << b << endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x>0

    a:=a+1

    если b < mod(x,8)

        то

            b:=mod(x,8)

    все

    x:=div(x,8)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    if b < (x % 8):

        b =x % 8

    x //= 8

print(a)

print(b)

 


Аналоги к заданию № 6781: 6813 Все


2
Задание 20 № 15636

Укажите наибольшее десятичное число, при вводе которого на экране сначала напечатается 3, а затем 6.

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

L = L + 1

IF X MOD 2 <> 0 THEN

    M = M + (X MOD 8)

ENDIF

X = X \ 8

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0 :

    L = L+1

     if (x % 2) != 0:

         M = M + x % 8

     x = x // 8

print(L)

print(M)

ПаскальАлгоритмический язык

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x > 0 do begin

         L:=L + 1;

        if (x mod 2) <> 0 then

             M:= M + x mod 8;

        x:= x div 8;

    end;

    writeln(L); write(M);

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        L := L + 1

         если mod(x,2) <> 0

            то

             M:= M + mod (x,8);

        x := div(x,8)

        все

     кц

     вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

 

int main(void) {

    int L, M, x;

    cin >> x;

     L = 0; M = 0;

    while (x > 0) {

         L = L + 1;

        if (x % 2 != 0) {

             M = M + x % 8;

        }

        x = x / 8;

    }

     cout << L << “ “ << M;

}

 

Источник: ЕГЭ — 2018. До­сроч­ная волна. Вариант 1., ЕГЭ — 2018. До­сроч­ная волна. Вариант 2.

3
Задание 20 № 15860

Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 14, а потом 3.

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

    IF X MOD 2 <> 0 THEN

        L = L + X MOD 8

    ENDIF

    X = X \ 8

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0 :

    M = M+1

     if (x % 2) != 0:

         L = L + x % 8

     x = x // 8

print(L)

print(M)

ПаскальАлгоритмический язык

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x > 0 do begin

        M:=M + 1;

        if (x mod 2) <> 0 then

            L:= L + x mod 8;

        x:= x div 8;

    end;

    writeln(L); write(M);

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        M := M + 1

         если mod(x,2) <> 0

            то

             L:= L + mod (x,8);

        x := div(x,8)

        все

     кц

     вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

 

int main(void) {

    int L, M, x;

    cin >> x;

     L = 0; M = 0;

    while (x > 0) {

         M = M + 1;

        if (x % 2 != 0) {

             L = L + x % 8;

        }

        x = x / 8;

    }

     cout << L << “ “ << M;

}

 

Источник: ЕГЭ — 2018. До­сроч­ная волна. Вариант 2., ЕГЭ — 2018. До­сроч­ная волна. Вариант 1.

4
Задание 20 № 15930

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12.

 

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    IF X MOD 2 > 0 THEN

        A = A + X MOD 8

    ELSE

        B = B * X MOD 8

    END IF

    X = X \ 8

WEND

PRINT A

PRINT B

 

x = int(input())

a=0; b=1

while x > 0:

    if x%2 > 0:

        a += x%8

    else:

        b = b * (x%8)

    x = x//8

print(a, b)

 

ПаскальАлгоритмический язык

var x, a, b: longint;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do begin

        if x mod 2 > 0 then

            a := a + x mod 8

        else

            b := b * (x mod 8);

        x := x div 8;

    end;

    writeln(a); write(b);

end.

 

алг

нач

    цел x, a, b

    ввод x

    a := 0; b := 1

    нц пока x > 0

        если mod(x,2)>0

            то a := a + mod(x,8)

            иначе b := b*mod(x,8)

        все x := div(x,8)

    кц

    вывод a, нс, b

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0) {

        if (x%2 > 0)

            a += x%8;

        else

            b *= x%8;

        x = x / 8;

    }

    cout << a << endl << b << endl;

    return 0;

}

 

 


5
Задание 20 № 15957

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12.

 

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    IF X MOD 2 > 0 THEN

        A = A + X MOD 8

    ELSE

        B = B * X MOD 8

    END IF

    X = X \ 8

WEND

PRINT A

PRINT B

 

x = int(input())

a=0; b=1

while x > 0:

    if x%2 > 0:

        a += x%8

    else:

        b = b * x%8

    x = x//8

print(a, b)

 

ПаскальАлгоритмический язык

var x, a, b: longint;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do begin

        if x mod 2 > 0 then

            a := a + x mod 8

        else

            b := b * x mod 8;

        x := x div 8;

    end;

    writeln(a); write(b);

end.

 

алг

нач

    цел x, a, b

    ввод x

    a := 0; b := 1

    нц пока x > 0

        если mod(x,2)>0

            то a := a + mod(x,8)

            иначе b := b*mod(x,8)

        все x := div(x,8)

    кц

    вывод a, нс, b

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0) {

        if (x%2 > 0)

            a += x%8;

        else

            b *= x%8;

        x = x / 8;

    }

    cout << a << endl << b << endl;

    return 0;

}

 

 


Пройти тестирование по этим заданиям