Cho ba số A, B, C (mỗi số từ 1 đến 9). Có ba tấm thẻ số và một tấm thẻ toán tử '+'. Người chơi phải sắp xếp bốn tấm thẻ thành biểu thức X + Y (X là số hai chữ số, Y là số một chữ số) để giá trị biểu thức lớn nhất. Tiền tiêu vặt bằng giá trị biểu thức đó.
Ví dụ
Với A = 1; B = 5; C = 2, đầu ra là 53. Sắp xếp: 52 + 1 = 53 (lớn nhất).
Giải thuật
Đặt ba chữ số vào mảng, sắp xếp tăng dần. Số lớn nhất (V[2]) làm hàng chục của X, số trung bình (V[1]) làm hàng đơn vị của X, số nhỏ nhất (V[0]) làm Y. Kết quả: V[2]*10 + V[1] + V[0].
Mã C++
#include <bits/stdc++.h>
using namespace std;
int solve(int A, int B, int C) {
vector<int> V = { A, B, C };
sort(V.begin(), V.end());
int ans = (V[2] * 10) + V[1] + V[0];
return ans;
}
int main() {
int A = 1, B = 5, C = 2;
cout << solve(A, B, C) << endl;
}
Đầu vào / Đầu ra
Input: 1, 5, 2
Output: 53