1 //Uva725
2 #include <iostream>
3 #include <cstring>
4 #include <cstdlib>
5 #include <cstdio>
6 using namespace std;
7
8 void evalu(int n)
9 {
10 const int maxn = 1024 + 10;
11 char num[10]; //将数字用字符保存
12 int flag[10]; //判断每个数,是否重复
13 char buf[maxn]; //将出现的字符全部存到里面
14 for (int i = 1234; i <= 5000; i++)
15 {
16 memset(flag, 0, sizeof(flag));
17 memset(num, 0, sizeof(num));
18 sprintf(num, "%05d", i);
19 // cout << "Debug: " << num << endl;
20 // system("pause");
21 int digit = 0, rest = 0;
22 digit = (num[0]-'0')*10000 + (num[1]-'0')*1000 + (num[2]-'0')*100 + (num[3]-'0')*10 + (num[4]-'0');
23 // cout << "Debug:digit: " << digit << endl;
24 // system("pause");
25 rest = digit * n;
26 sprintf(buf, "%05d%05d", rest, digit);
27 int len = strlen(buf), j = 0;
28 for (j = 0; j < len; j++) {
29 if (flag[buf[j] - '0']) {
30 break;
31 }
32 else {
33 flag[buf[j] - '0'] = 1;
34 }
35 }
36 if (j == len) {
37 cout << rest << " / " << num << " = " << n << endl;
38 }
39 }
40 }
41
42
43 int main()
44 {
45 int num;
46 while (cin >> num) {
47 evalu(num);
48 }
49 return 0;
50 }
1 //Uva11059
2 #include <iostream>
3 #include <vector>
4 #include <cstdio>
5 #include <cstdlib>
6 #include <fstream>
7 using namespace std;
8
9 //ifstream in("in.txt");
10 //ofstream out("out.txt");
11
12 int main()
13 {
14 long long pro = 1, max_pro = 0;
15 vector<long long> num;
16 long long data;
17 int T, kase = 0;
18 while (cin >> T)
19 {
20 num.clear();
21 pro = max_pro = 0;
22 while (T--) {
23 cin >> data; num.push_back(data);
24 }
25 for (unsigned i = 0; i < num.size(); i++) {
26 pro = num[i];
27 for (unsigned j = i; j < num.size(); j++) {
28 if (i != j) {
29 pro *= num[j]; //pro尽管乘
30 if (pro > num[i]) //pro > num[i]
31 num[i] = pro; //num[i] = pro, 将最大的乘积放到该位置
32 }
33 }
34 }
35 for (unsigned i = 0; i < num.size(); i++) {
36 if (num[i] > max_pro) {
37 max_pro = num[i];
38 }
39 }
40 cout << "Case #" << ++kase << ": The maximum product is " << max_pro << "." << "\n\n";
41 }
42 return 0;
43 }
44