Проверить, будут ли все цифры числа различными - Pascal
Формулировка задачи:
Дано натуральное число n. Проверить, будут ли все цифры числа различными.
Решение задачи: «Проверить, будут ли все цифры числа различными»
textual
Листинг программы
uses crt;
var n:longint;
k,p,t:byte;
m:set of byte;
begin
clrscr;
write('n=');
readln(n);
m:=[];p:=0;t:=0;
while n>0 do
begin
k:=n mod 10;
t:=t+1;
if not (k in m)then
begin
include(m,k);
p:=p+1;
end;
n:=n div 10;
end;
if p=t then write('В числе все цифры разные')
else write('В числе не все цифры разные');
readln
end.
Объяснение кода листинга программы
- Объявляется переменная
nтипа longint для хранения введенного числа. - Объявляются переменные
k,pиtтипа byte для хранения цифры числа, количества уникальных цифр и количества цифр в числе соответственно. - Объявляется множество
mдля хранения уникальных цифр. - Очищается экран.
- Пользователю предлагается ввести число
n. - Инициализируется множество
mпустым множеством, количество уникальных цифрpи количество цифр в числеtравны нулю. - В цикле, пока
nбольше нуля, выполняются следующие действия:- Получается последняя цифра числа
nи сохраняется в переменнуюk. - Увеличивается счетчик
tна 1. - Если цифра
kне содержится в множествеm, то- добавляется цифра
kв множествоm, - увеличивается счетчик
pна 1.
- добавляется цифра
- Число
nделится нацело на 10.
- Получается последняя цифра числа
- После завершения цикла проверяется, равно ли количество уникальных цифр
pколичеству цифр в числеt. Если да, выводится сообщениеВ числе все цифры разные, в противном случаеВ числе не все цифры разные. - Программа ждет нажатия клавиши, чтобы завершить выполнение.