Задание 6. Тип заданий 20: программирование, циклы.
  • Задание:

    Ниже на языке Pascal записан алгоритм. При каком наибольшем n программа выведет на экран сначала 2, а потом 5?

    Pascal:
    var n, a, b, c: integer;
    begin
      readln(n);
      a := 0; b := 10;
      while n > 0 do begin
        a:=a+1;
        if n mod 10 < b then
          b := n mod 10;
        n := n div 10;
      end;
      writeln(a); write(b);
    end.
  • Решение:

    Для решения задания нужно понять, как работает алгоритм.

    При вводе числа n программа выводит числа a и b, значит значения a и b непосредственно связаны с числом n.

    Разберёмся, чем для числа n является число a, а чем — число b. Начнем с переменной a.

    Изначально значение переменной a = 0. Каждый повтор цикла к ней прибавляется 1, значит a — это количество повторов цикла.

    Каждый повтор цикла происходит операция n := n div 10, то есть от n отнимается последний разряд. При этом цикл завершается, когда перестаёт выполняться условие n>0. Таким образом получается, что от переменной n каждый повтор цикла отнимается один разряд до тех пор, пока n не станет равна нулю. Исходя из этого можно утверждать, что значение переменной a — это количество разрядов в числе n. По условию a=2, значит число n содержит два разряда.

    Теперь разберемся с переменной b. Изначально она равна 10, каждый повтор цикла проверяется условие, если n mod 10 < b, то b := n mod 10. Остаток от деления десятичного числа на 10 — это его последний разряд. К примеру, 55 mod 10 = 5, а 12 mod 10 = 2. То есть условие в цикле проверяет каждый разряд числа n, и если он меньше b, то значению b присваивается этот разряд. Значит можно утверждать, что b — наименьший разряд числа n.

    Исходя из наших выводов получается, что число n двузначно, и минимальный его разряд равен 5. Наибольшее двузначное число, в котором минимальный разряд равен 5 — это 95.

    Ответ: 95

Поделиться:
 
Комментарии (0)

Нет комментариев. Ваш будет первым!

Перевести число из в Результат: 510 = 1012