Вы берете младшую цифру и проверяете, присутствует ли она в остальной части номера.Если он найден, все готово.Если он не найден, вы делите число на 10 и повторяете процесс.Пример:
n = 123456789;
step 1: Is 9 present in 12345678
step 2: Is 8 present in 1234567
step 3: Is 7 present in 123456
.. and so on ..
Итак, сначала вы пишете функцию, которая может определить, содержит ли число конкретную цифру.Функция может выглядеть следующим образом:
int contains_digit(int number, int digit)
{
while(number)
{
if ((number % 10) == digit) return 0; // Return zero when found
number /= 10;
}
return 1; // Return one if not found
}
Затем вы вызываете эту функцию для всех цифр исходного номера и проверяете цифру на число, деленное на 10. Например, если число 1234, вы вызываете функциюкак:
contains_digit(123, 4)
contains_digit(12, 3)
contains_digit(1, 2)
Это может быть что-то вроде:
int main( void )
{
int n = 12434;
int flag = 1;
while(n && flag)
{
flag = contains_digit(n/10, n % 10);
n /= 10;
}
printf("flag is %d\n", flag);
return 0;
}