此题学习judge()部分,判断是否具有相同的单元(数字、字母等)使用了a[ ]数组
#include<iostream>
#include<cstdio>using namespace std;
int a[10];
bool judge(int mi,int ma){
if(ma>=98765)return 0;
for(int i=0;i<10;++i)a[i]=0;
int t;
if(mi<10000)a[0]=1;
while(mi){
t=mi%10; a[t]=1; mi/=10;
}
while(ma){
t=ma%10; a[t]=1; ma/=10;
}
for(int i=0;i<10;++i)
if(!a[i])return false;
}
int main(){
int n;
int kase=0;
while(~scanf("%d",&n)&&n){
if(kase++)printf("\n");
int cnt=0;
for(int i=1234;i<98765;++i){
if(judge(i,i*n)){cnt++; printf("%05d / %05d = %d\n",i*n,i,n);}
}
if(!cnt)printf("There are no solutions for %d.\n",n);
}
return 0;
}