Uva 725 Division

题目链接:https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=666

题意:略。

思路:暴力枚举fghil,根据等式关系推出abcde再判断就好了。

#include <bits/stdc++.h>
using namespace std;
int n;
map<int,int>mp;
int main(){
    bool flag=true;
    while (~scanf("%d",&n) && n){
        if (flag) flag=false;
        else puts("");
        int cnt=0,mx=98765/n;
        for (int i=1234;i<=mx;i++){
            mp.clear();
            int tmp=i,tmpy=i*n;
            bool flag=false;
            if (i<10000) mp[0]++;
            if (tmpy<10000) continue;
            while (tmp){
                mp[tmp%10]++;
                if (mp[tmp%10]>=2){
                    flag=true;
                    break;
                }
                tmp/=10;
            }
            if (!flag){
                bool flag2=false;
                while (tmpy){
                    mp[tmpy%10]++;
                    if (mp[tmpy%10]>=2){
                        flag2=true;
                        break;
                    }
                    tmpy/=10;
                }
                if (!flag2) printf("%05d / %05d = %d\n",i*n,i,n),cnt++;
            }
        }
        if (!cnt) printf("There are no solutions for %d.\n",n);
    }
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注