iRobot СПб

Задачка Pascal. Напечатать в возрастающем порядке все цифры не входящие в записи данного числа

Задачка Pascal: Напечатать в возрастающем порядке все цифры, которые не входят в запись данного числа, является довольно интересной задачей. Каким-то образом это сочетание из чисел, кодирующих некоторую информацию. В нашем случае, нужно узнать, какие цифры не входят в запись данного числа и распечатать их в возрастающем порядке.

Для решения этой задачи воспользуемся языком программирования Pascal, который знаменит своим простым и понятным синтаксисом.

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

  1. Вводим число, запись которого мы исследуем.

  2. Инициализируем переменную digits - это массив, который будет хранить все цифры, которые входят в запись данного числа. Изначально массив пуст.

  3. Создаем цикл для перебора каждой цифры в записи числа.

  4. В каждой итерации цикла, получаем очередную цифру числа и проверяем, входит ли она уже в массив digits.

Если цифры нет в массиве, то добавляем ее в массив digits.

  1. Инициализируем переменную allDigits - это массив, который содержит все цифры от 0 до 9.

  2. Создаем цикл для перебора каждой цифры из массива allDigits.

  3. В каждой итерации цикла, проверяем, входит ли текущая цифра в массив digits.

Если цифра не входит, то печатаем ее.

  1. Завершаем алгоритм.

Реализация на Pascal

program FindMissingDigits;

var
  number, digit: Integer;
  digits: array of Boolean;
  allDigits: array[0..9] of Boolean;

begin
  Write('Введите число: ');
  Readln(number);

  SetLength(digits, 10); 
  digits := False;

  while number <> 0 do
  begin
    digit := number mod 10;
    if not digits[digit] then
      digits[digit] := True;
    number := number div 10;
  end;

  for digit := 0 to 9 do
    if not digits[digit] then
      allDigits[digit] := True;

  writeln('Цифры, не входящие в запись числа:');
  for digit := 0 to 9 do
    if allDigits[digit] then
      write(digit, ' ');

  writeln;
  Readln;
end.

Немного объяснений

Для решения этой задачи мы используем массивы digits и allDigits типа Boolean. В digits мы храним информацию о том, какие цифры входят в запись числа, а в allDigits - информацию о том, какие цифры существуют. Исходное значение обоих массивов установлено на False, чтобы указать, что исходно мы не знаем о наличии или отсутствии цифр в записи числа.

Далее, мы используем цикл while, чтобы получить очередную цифру числа и поместить ее в соответствующую ячейку массива digits. Затем используется цикл for, чтобы проверить, какие цифры отсутствуют в записи числа и вывести их на экран.

Заключение

Таким образом, задачка Pascal "Напечатать в возрастающем порядке все цифры не входящие в записи данного числа" требует простого и понятного алгоритма для решения, который мы успешно реализовали на Pascal.