В заданном интервале найти все числа, в записи которых отсутствуют хотя бы 2 одинаковые цифры - Free Pascal

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

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

На заданном числовом промежутке требуется найти все числа, в десятичной записи которых отсутствуют хотя бы две одинаковые цифры.

Решение задачи: «В заданном интервале найти все числа, в записи которых отсутствуют хотя бы 2 одинаковые цифры»

textual
Листинг программы
  1. var
  2.   s:set of byte;
  3.   a,b,t:int64;
  4.   k:byte;
  5.   ok,ok1:boolean;
  6. begin
  7.   repeat
  8.     write('введите границы числового промежутка:');
  9.     readln(a,b);
  10.   until a<b;
  11.   ok1:=false;
  12.   repeat
  13.     t:=abs(a);
  14.     ok:=true;s:=[];
  15.     while t>0 do begin
  16.       k:=t mod 10;
  17.       t:=t div 10;
  18.       if k in s then begin
  19.         ok:=false;
  20.         break;
  21.       end else include(s,k);
  22.     end;
  23.     if ok then begin
  24.       writeln(a);
  25.       ok1:=true;
  26.     end;
  27.     a:=a+1;
  28.   until a>b;
  29.   if not ok1 then writeln('Нет чисел удовлетворяющих условию');
  30. readln;
  31. end.

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

  1. Переменная s инициализируется как пустое множество (set of byte).
  2. Пользователю предлагается ввести границы числового промежутка (переменные a и b).
  3. Пока a меньше b, выполняется следующий блок кода.
  4. Переменная t инициализируется как абсолютное значение a.
  5. Переменная ok инициализируется как true, а переменная s как пустое множество.
  6. Пока t больше 0, выполняется следующий блок кода.
  7. Переменная k инициализируется как остаток от деления t на 10.
  8. t делится на 10 и уменьшается на 10.
  9. Если k уже присутствует в множестве s, то значение переменной ok меняется на false, и цикл прерывается.
  10. Если k не присутствует в множестве s, то оно добавляется в множество s.
  11. После цикла, если значение переменной ok равно true, то число a выводится на экран, и переменная ok1 инициализируется как true.
  12. a увеличивается на 1, и цикл повторяется до тех пор, пока a меньше b.
  13. Если после выполнения всего цикла значение переменной ok1 остается равным false, то выводится сообщение Нет чисел, удовлетворяющих условию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы