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

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

    Pascal:
    var n, a, b, c: integer;
    begin
      readln(n);
      a := 0; b := 0;
      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.
  • Решение:

    Рассмотрим алгоритм.

    Каждый повтор цикла значение переменной a увеличивается на 1. По условию переменная a = 2, то есть цикл совершит два повтора, каждый раз увеличивая значение а на 1, после чего завершится.

    Кроме того, каждый повтор цикла значение переменной n делится на 10, то есть уменьшается на один разряд. Цикл завершается, когда n=0. Исходя из того, что цикл совершил два повтора, можно считать, что число n — двузначное, так как оно два раза было разделено на 10, после чего стало нулём.

    Вывод 1: число n — двузначное.

    Каждый повтор цикла проверяется младший (последний) разряд числа n (n mod 10), если он больше переменной b, то переменной b присваивается этот разряд. То есть b — максимальный разряд числа n.

    Вывод 2: максимальный разряд n равен 7.

    То есть мы должны найти наибольшее двузначное число, максимальный разряд которого равен 7-ми.

    Так как мы ищем наибольшее число, максимальный разряд которого равен 7-ми, значит старший разряд должен быть равен 7-ми:

    7x

    При этом младшему разряду ничего не мешает тоже быть равным 7-ми:

    77

    Примечание: здесь многие допускают ошибку, полагая, что если максимальный только один такой в числе, и в качестве ответа указали бы число 76.

    Ответ: 77

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

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

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