枚举法的简单应用,水题,先A了。



#include<stdio.h>
#include<string.h>

int num[11] = {0};
int judge(int a, int b)
{
    int i;
    for(i = 1; i <= 5; i++)
    {
        if(!num[a % 10])
        {
            num[a % 10]++;
            a /= 10;
        }
        else return 0;
    }
    for(i = 1; i <= 5; i++)
    {
        if(!num[b % 10])
        {
            num[b % 10]++;
            b /= 10;
        }
        else return 0;
    }
    return 1;
}
int main()
{
    int i;
    int N, times = 0;
    while(scanf("%d", &N)&& N)
    {
        !times ? : printf("\n");
        ++times;
        int sign = 0;
        for(i = 1000; i <= 50000; i++)
        {
            memset(num, 0, sizeof(num));
            if(judge(i * N, i)&& i * N <= 99999)
            {
                sign = 1;
                printf("%05d / %05d = %d\n", N * i, i, N);
            }
        }
        sign == 1? : printf("There are no solutions for %d.\n", N);
    }
    return 0;
}