• Помогите пожалуйста.
    Ниже на пяти языках записан алгоритм. Получив на вход число x, этот
    алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x,
    при вводе которых алгоритм печатает сначала 4, а потом 17.
    Паскаль;
    program B20;
    var x, a, b, d: integer;
    begin
    readln(x);
    a := 0; b := 0; d := 0;
    while x > 0 do
    begin
    if d mod 2= 0 then
    a := a + x mod 10
    else
    b := b + x mod 10;
    x := x div 10;
    d:=d + 1
    end;
    writeln(a); write(b);
    end.

Ответы 2

  • спасибо большое))
    • Автор:

      evans
    • 5 лет назад
    • 0
  • Наименьшее число - 8094

    Из алгоритма видно, что сначала сравнивают, четно или нет число d. Если четно, то берут остаток от деления числа на 10, т.е крайнюю правую цифру числа и суммируют ее с a, если не четно, то суммируют c b. Затем прибавляют 1 к d, и получают целую часть от деления x на 10. Т.к изначально d = 0, то можно сделать вывод о том, что в переменной a хранится сумма всех цифр x, которые стоят на нечетных местах, а в переменной b - сумма цифр, стоящих на четных местах(Считая справа, т.к алгоритм работает справа налево). 17 можно получить, если сложить 9 и 8. Таким образом, мы выставляем 9 и 8 на четные позиции, а 4 ставит крайней справа, и тогда между 8 и 9 окажется 0. Так мы получим число 8094

  • Добавить свой ответ

Войти через Google

или

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

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

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