Найти число под заданным номером в ряду чисел, состоящих из цифр 0 и 5

Задача

Дана последовательность чисел, состоящих только из цифр 0 и 5, в порядке возрастания: 0 5 50 55 500 505 5000 5005 5050 и так далее. Найти k-ое по порядку в этой последовательности число.

Решение

 

Описание переменных: 

  • k - номер элемента ряда;
  • i - номер текущего элемента ряда;
  • n - число кратное 5-ти;
  • m - для проверки числа, является ли оно элементом ряда.

Алгоритм решения задачи: 

Все числа ряда кратны 5, другие одинаковые делители не найдены. Значит, нужно перебирать натуральные числа, кратные 5, от нуля. Следующее натуральное число находится как сумма текущего и числа 5. Полученное таким образом новое натуральное число проверяется на состав цифр. Если число состоит только из нулей и пятерок, то увеличиваем счетчик элементов ряда (i). Как только счетчик станет равен k, цикл прекратиться. Найденное число будет содержаться в переменной n.

Программа на языке Паскаль: 

 

var
    k,i: byte;
    n, m: longint;
begin
    readln(k);
    n := 0;
    i := 1;
    while i < k do begin
        n := n + 5;
        m := n;
        while m > 0 do begin
            if (m mod 10 <> 5) and (m mod 10 <> 0) then
                break;
            m := m div 10;
        end;
        if m = 0 then i := i + 1;
    end;
 
    writeln(n);
end.

 

Пример выполнения программы:

8
555

 

Тема

Циклы

Уровень

Комбинированные задачи

Добавить комментарий