Вывести в убывающем порядке цифры, которые входят в запись данного длинного целого числа только один раз - Turbo Pascal
Формулировка задачи:
б. Вывести в убывающем порядке цифры, которые входят в запись данного длинного целого числа только один раз.
Решение задачи: «Вывести в убывающем порядке цифры, которые входят в запись данного длинного целого числа только один раз»
textual
Листинг программы
var n:longint; a:array[0..9] of byte; i:byte; begin write('n = ');readln(n); for i:=0 to 9 do a[i]:=0; while n>0 do begin inc(a[n mod 10]); n:=n div 10 end; for i:=9 downto 0 do if a[i]=1 then write(i,' ') end.
Объяснение кода листинга программы
- Переменная
n
представляет собой длинное целое число, которое нужно разбить на цифры. - Переменная
a
представляет собой массив байтов, который будет использоваться для хранения цифр. - Переменная
i
представляет собой байт, который будет использоваться для итерации по массивуa
. - В цикле
while
происходит следующее:- Инкрементируется значение
a[n mod 10]
, что увеличивает значение последней цифры числаn
. n
делится на 10, что позволяет получить следующую цифру числа.- Цикл продолжается до тех пор, пока
n
не станет равным нулю.
- Инкрементируется значение
- В конце цикла выводится последняя цифра числа, если она равна 1.
- Код использует арифметическую операцию
mod
для получения остатка от деления, что позволяет получить последнюю цифру числа. - Код не использует вложенные списки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д