В заданном интервале найти все числа, в записи которых отсутствуют хотя бы 2 одинаковые цифры - Free Pascal
Формулировка задачи:
На заданном числовом промежутке требуется найти все числа, в десятичной записи которых отсутствуют хотя бы две одинаковые цифры.
Решение задачи: «В заданном интервале найти все числа, в записи которых отсутствуют хотя бы 2 одинаковые цифры»
textual
Листинг программы
- var
- s:set of byte;
- a,b,t:int64;
- k:byte;
- ok,ok1:boolean;
- begin
- repeat
- write('введите границы числового промежутка:');
- readln(a,b);
- until a<b;
- ok1:=false;
- repeat
- t:=abs(a);
- ok:=true;s:=[];
- while t>0 do begin
- k:=t mod 10;
- t:=t div 10;
- if k in s then begin
- ok:=false;
- break;
- end else include(s,k);
- end;
- if ok then begin
- writeln(a);
- ok1:=true;
- end;
- a:=a+1;
- until a>b;
- if not ok1 then writeln('Нет чисел удовлетворяющих условию');
- readln;
- end.
Объяснение кода листинга программы
- Переменная
s
инициализируется как пустое множество (set of byte). - Пользователю предлагается ввести границы числового промежутка (переменные
a
иb
). - Пока
a
меньшеb
, выполняется следующий блок кода. - Переменная
t
инициализируется как абсолютное значениеa
. - Переменная
ok
инициализируется как true, а переменнаяs
как пустое множество. - Пока
t
больше 0, выполняется следующий блок кода. - Переменная
k
инициализируется как остаток от деленияt
на 10. t
делится на 10 и уменьшается на 10.- Если
k
уже присутствует в множествеs
, то значение переменнойok
меняется на false, и цикл прерывается. - Если
k
не присутствует в множествеs
, то оно добавляется в множествоs
. - После цикла, если значение переменной
ok
равно true, то числоa
выводится на экран, и переменнаяok1
инициализируется как true. a
увеличивается на 1, и цикл повторяется до тех пор, покаa
меньшеb
.- Если после выполнения всего цикла значение переменной
ok1
остается равным false, то выводится сообщениеНет чисел, удовлетворяющих условию
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д