UVa725-Division

来源:互联网 发布:手机远程控制电脑 知乎 编辑:程序博客网 时间:2024/06/05 20:47
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;int used[10];int judge(int a, int b){    if(b > 98765) return 0 ;    for(int i = 0; i < 10; i++)    {        used[i] = 0;    }    if(a < 10000) used[0] = 1;    while(a)    {        used[a%10] = 1;        a /= 10;    }    while(b)    {        used[b%10] = 1;        b /= 10;    }    int sum = 0;    for(int i = 0; i < 10; i++)    {        if(used[i] == 1)            sum++;    }    return(sum == 10);}int main(){    int n, t = 0;    while(~scanf("%d", &n) && n)    {        int count = 0;        for(int i = 1234; i < 100000; i++)        {            if(judge(i, i*n))            {                printf("%05d / %05d = %d\n", i*n, i, n);                count ++;            }        }        if( !count )            printf("There are no solutions for %d.\n", n);    }    return 0;}

a,b分别代表枚举的和乘n的结果,对比是否有重叠数字即可,不必想太复杂仔细读懂题解

0 0
原创粉丝点击