1. Title Description: Click to open the link
2. Problem-Solving ideas: The problem of using violent search solution. The divisor is enumerated directly from 1234, so the upper limit is 100000/n because the product cannot exceed 100000. Then you can determine whether the resulting product and all the numbers in the divisor are different.
3. Code:
#define _crt_secure_no_warnings #include <iostream> #include <algorithm> #include <string> #include <sstream> #include <set> #include <vector> #include <stack> #include <map> #include < queue> #include <deque> #include <cstdlib> #include <cstdio> #include <cstring> #include < cmath> #include <ctime> #include <functional>using namespace std;bool check (int m, int n) {bool OK = True;int Vis[10];memset (Vis, 0, sizeof (VIS)), for (int i = 0; i < 5; i++) {vis[m% 10]++, vis[n% 10]++;if (vis[m% 10]>1 | | vi S[n] > 1) OK = False;m/=, n/= 10;} return OK;} int main () {//freopen ("T.txt", "R", stdin), int n;int rnd = 0;while (~scanf ("%d", &n) && N) {if (rnd++) cout <& Lt Endl;int OK = 0;for (int divisor = 1234; divisor <= 100000/n; divisor++) {int m = divisor*n;if (check (M, divisor)) {OK = 1;printf ("%05d/%05d =%d\n", m, divisor, n);}} if (!ok) printf ("There is no solutions for%d.\n", n);} return 0;}
Example 7-1 Division UVa725