Паскаль. Основы программирования


Задание 5 - часть 2


         end;

{----------------------------------------------------------------------------------------}

    Procedure happiness(x : longint);

        var

            l, r : longint;

        begin

           sum_number(x mod 1000, l);

           sum_number(x div 1000, r);

           if l = r then write(x, ' ')

        end;

{---------------------------------------------------------------------------------------}

    begin

       writeln('Счастливые автобусные билеты');

       for i := 100000 to 999999 do

happiness(i);

       writeln

    end.

Этот алгоритм можно изменить, учитывая следующее. Если мы имеем некоторый "счастливый" номер, последняя цифра которого отлична от нуля, а предпоследняя - от девяти, то следующий "счастливый" номер может быть получен одновременным уменьшением последней цифры и увеличением предпоследней на единицу (эта операция эквивалентна прибавлению 9). Отсюда следует, что нет смысла перебирать все числа из указанного промежутка и для каждого из них решать, представляет ли оно "счастливый" номер.

Попробуйте составить программу, используя эти соображения.





Начало  Назад  Вперед



Книжный магазин