Определить, какие различные цифры входят в целое число - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Как можно написать данную программу попроще, а это эта не особо понятная?

Решение задачи: «Определить, какие различные цифры входят в целое число»

textual
Листинг программы
var
    n: longint;
    digits: array[0..9] of byte;
    i: byte;
begin
    write('Input number: ');
    readln(n);
    if n < 0 then
        n:= abs(n);
    repeat
        inc(digits[n mod 10]);
        n=n div 10;
    until n = 0;
    for i:=0 to 9 do
        if digits[i]=1 then write(digits[i]:3);
readln
end.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные: n - целое число, digits - массив байтов (цифр), i - байт.
  2. Выводится сообщение «Input number: », после чего считывается число n. Если оно отрицательное, то преобразуется в положительное с помощью функции abs.
  3. Затем начинается цикл repeat-until, в котором увеличивается значение соответствующего элемента массива digits в зависимости от остатка от деления n на 10. После этого n делится на 10 и цикл повторяется до тех пор, пока n не станет равным 0.
  4. В конце цикла выводится сообщение для каждой цифры из массива digits, если она равна 1.
  5. Конец программы.

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы