информатика
Информатика
Русский язык
Английский язык
Немецкий язык
Французcкий язык
Испанский язык
Физика
Химия
Биология
География
Обществознание
Литература
История
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 20 № 6813

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

 

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

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)

 

Пояснение.

Значение в переменной a после выполнения цикла равно количеству выполненных циклов. Поскольку требуется, чтобы программа напечатала сначала число 3, цикл должен выполниться три раза. Оператор div оставляет только целую часть от деления, следовательно, искомое число должно два раза делиться на 8 так, чтобы остаток был не меньше восьми. Следовательно, это число должно быть не меньше числа 64.

В переменную b записывается остаток от деления числа на 8. По условию требуется, чтобы после выполнения цикла переменная b имела значение 4, т. е. остаток от последнего деления на 8 в цикле должен быть равен 4.

Выполним программу для всех чисел, не меньших чем 64. Первое число, которое удовлетворит условию и будет наименьшим. Поскольку программа выводит целые числа и никаких других операторов к числу, кроме операторов div и mod, не применяется, будем рассматривать только целые числа.

При вводе числа 64 программа выведет числа 3 и 1. При вводе числа 65 программа выведет числа 3 и 1. При вводе числа 66 программа выведет числа 3 и 2, 67 — 3 и 3, 68 — 3 и 4. Следовательно, ответ 68.

 

Ответ: 68.