ABC*D

751 词

题目描述

输入四个数 ABCD 每一个数都在【0,9】之间,每一个数必须用一次,也只能用一次,要求输出四个数组成的算式 【?】【?】【?】X【?】可能的最大值

输入

多组输入 每一行有四个整数

A B  C D 

输出

ABC*D的最大值

样例输入

1
2
1 1 1 2
1 1 1 1

样例输出

1
2
222
111

提示

1 1 1 2可以组成的算式有很多个

可以组成

$$121*1=121$$

$$211*1=211$$

$$111*2=222$$

可以证明这些数字中222最大

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
#define endl '\n'

int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
for (int a, b, c, d; cin >> a >> b >> c >> d;) {
vector<int> v{a, b, c, d};
sort(v.begin(), v.end());
int best = INT_MIN;
do {
int cur = (v[0] * 100 + v[1] * 10 + v[2]) * v[3];
best = max(cur, best);
} while (next_permutation(v.begin(), v.end()));
cout << best << endl;
}
return 0;
}