Попытка сгенерировать 9-значные числа с каждой уникальной цифрой

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

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int indx;
    int num;
    int d1, d2, d3, d4, d5, d6, d7, d8, d9;

    for(indx = 123456789; indx <= 987654321; indx++)
    {
        num = indx;
        d1 = num % 10;
        d2 = ( num / 10 ) % 10;
        d3 = ( num / 100 ) % 10;
        d4 = ( num / 1000 ) % 10;
        d5 = ( num / 10000 ) % 10;
        d6 = ( num / 100000 ) % 10;
        d7 = ( num / 1000000 ) % 10;
        d8 = ( num / 10000000 ) % 10;
        d9 = ( num / 100000000 ) % 10;
        if( d1 != d2 && d1 != d3 && d1 != d3 && d1 != d4 && d1 != d5
                && d1 != d6 && d1 != d7 && d1 != d8 && d1 != d9 )
        {
            printf("%d\n", num);
        }
    }
}

Это просто сравнение первого числа с остальными. Я должен был бы сделать это намного больше, чтобы сравнить другие числа. Есть лучший способ сделать это?

Ответы на вопрос(15)

Ваш ответ на вопрос