Вывести в порядке возрастания цифры, из которых состоит число

Задача

Вывести в порядке возрастания цифры, входящие в десятичную запись натурального числа N.

Решение

Данная задача состоит из двух подзадач:

  1. Определить цифры, из которых состоит число.
  2. Отсортировать их в порядке возрастания.

Поскольку стоит вопрос о сортировке, то уместно цифры числа помещать массив. Цифры из заданного числа извлекаются путем последовательного нахождения остатка от деления на 10.

const N = 10;
var
    arr: array[1..N] of byte;
    m: longint;
    i, j, k, b: byte;
begin
    readln(m);
    k := 0;
    while m > 0 do begin
        k := k + 1;
        arr[k] := m mod 10;
        m := m div 10;
    end;
 
    for i:=1 to k-1 do
        for j:=1 to k-i do 
            if arr[j] > arr[j+1] then begin
                b := arr[j];
                arr[j] := arr[j+1];
                arr[j+1] := b;
            end;        
 
    for i:=1 to k do 
        write(arr[i],' ');
    writeln;
end.

Здесь используется сортировка по возрастанию методом пузырька.

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

4663299
2 3 4 6 6 9 9
Программа не удаляет повторяющиеся цифры числа.

Тема

Одномерные массивы

Уровень

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

Последняя редакция

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