• Ниже на четырёх язы­ках за­пи­сан ал­го­ритм. По­лу­чив на вход число х, этот ал­го­ритм пе­ча­та­ет два числа а и b. Ука­жи­те наи­боль­шее из таких чисел x, при вводе ко­то­рых ал­го­ритм пе­ча­та­ет сна­ча­ла 2, а потом 17.
    бесик
    DIM X, А, В AS INTEGER
    INPUT X
    А = 0: В = 0
    WHILE X > 0
    А = А+1
    В = В + (X MOD 100)
    X = Х\100
    WEND
    PRINT А
    PRINT В

    паскаль
    var х, a, b: integer;
    begin
    readln(х);
    а : = 0; b : = 0;
    while х > 0 do
    begin
    а := а+1;
    b := b + (х mod 100);
    х := х div 100;
    end;
    writeln(a);
    write(b);
    end.

    си
    #include
    void main()
    {
    int x, a, b;
    scanf("Id", &x);
    a = 0; b = 0;
    while (x > 0) {
    a = a+1;
    b = b + (x%100);
    x = x/100;
    }
    printf("%d%d", a, b);
    }

    алг
    алг
    нач
    цел x, a, b
    ввод x
    a:=0; b:=0
    нц пока x > 0
    a := a+1
    b := b+mod(x,100)
    x := div(x,100)
    кц
    вывод а, нс, b
    кон

Ответы 1

  • Анализируя алгоритм, можно понять, что а (первое печатаемое) - это количество "блоков" по 2 цифры в числе (иными словами, число "цифр" в сторичной системе счисления), б - сумма таких блоков. Т.к. "блоков" всего 2, то число можно представить в виде 100m+n, где м и н - целые, м не равно 0, m+n=17, m<100, n<100. Ясно, что число будет максимально, если максимально будет m. Этому условию соответствует число 1700.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years