补一些基础简单题purple7
1 #include <cstdio> 2 #include <bits/stdc++.h> 3 using namespace std; 4 5 bool check(int x,int y) 6 { 7 int a[10]; 8 memset(a,0,sizeof(a)); 9 if(x<10000||y<10000) a[0]=1; // 10 if(x<10000&&y<10000) return false; // 11 while(x) 12 { 13 int temp=x%10; 14 if(a[temp]) return false; 15 a[temp]=1; 16 x/=10; 17 } 18 while(y) 19 { 20 int temp=y%10; 21 if(a[temp]) return false; 22 a[temp]=1; 23 y/=10; 24 } 25 26 return true; 27 } 28 29 int main() 30 { 31 int n; 32 int flag=0; 33 while(scanf("%d",&n)&&n) 34 { 35 if(flag) 36 { 37 puts(""); 38 } 39 else flag=1; 40 int ok=0; 41 for(int i=1234;;i++) 42 { 43 int y=i*n; 44 if(y>98765) break; 45 46 if(check(i,y)) ok=1,printf("%d / %05d = %d\n",y,i,n); 47 } 48 if(!ok) printf("There are no solutions for %d.\n",n); 49 } 50 }
原文:http://www.cnblogs.com/yijiull/p/7143698.html