题意分析:暴力的入门级题目,可以通过枚举除数解决。注意这里的输入输出,还有个很妙的处理0-9的不重复的方法。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char ans[11]="0123456789";
char s[11];
bool com(char a, char b){
return a>b;
}
int main(){
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n ,m=0;
while((scanf("%d",&n)!=EOF)&&(n)){
if(m>0) printf("\n");
m++;
int a ;
int flag = 0 ;
for(int i = 1234 ; i < 100000 ; i++){
a = i*n;
if(a>98765){
break;
}
if(i<10000){
sprintf(s,"%d%d%d",0,i,a);
}
else{
sprintf(s,"%d%d",i,a);
}
sort(s,s+10);
if(strcmp(s,ans)==0){
printf("%d / %05d = %d\n",a,i,n);
flag = 1 ;
}
}
if(flag==0){
printf("There are no solutions for %d.\n",n);
}
}
return 0 ;
}