补一些基础简单题purple7
1 #include2 #include 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 }
子集生成:
1 #include2 #include 3 using namespace std; 4 //子集生成lrjp188 5 6 //增量法 7 void print_subset_dxdy(int n,int *A,int cur) 8 { 9 for(int i=0;i