只要枚举fghij即可得到abcde了~~然后再判断10个数字是否完全不同即可,不过这题的输出格式有点刁钻,可以留意下
代码如下
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cstdio>
#include <climits>
#include <cmath>
using namespace std;
int panduan[10];
int main(){
#ifdef DID
freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
#endif
int n,t=0;
while(scanf("%d",&n)!=EOF&&n){
if(t++) printf("\n");
int a=1234,b=a*n;
bool blank=1;
for(;b<=98765;a++,b=a*n){
memset(panduan,0,sizeof(panduan));
int i=a,j=b;
if(b<10000||a<10000) panduan[0]=1;
while(i){
panduan[i%10]=1;
i/=10;
}
while(j){
panduan[j%10]=1;
j/=10;
}
int k=0;
for(int i=0;i<10;i++){
if(panduan[i]==1)
k++;
}
if(k==10){
printf("%05d / %05d = %d\n",b,a,n);
blank=0;
}
}
if(blank==1)
printf("There are no solutions for %d.\n",n);
}
return 0;
}