Mô tả bài toán
Cho hai số k chữ số m, n. Xáo trộn chữ số ngẫu nhiên rồi so sánh. Xác định số nào có xác suất lớn hơn để lớn hơn số kia.
Ví dụ
n=231, m=337, k=3 → So sánh từng cặp chữ số sau khi sắp xếp? Output: "Second".
Thuật toán
Chuyển thành chuỗi. Đếm số vị trí mà chữ số của n > m (f) và n < m (s). Nếu f>s → "First", s>f → "Second", else "Equal".
Code C++
#include <bits/stdc++.h>
using namespace std;
void solve(int n, int m, int k) {
string s1 = to_string(n);
string s2 = to_string(m);
int f=0, s=0;
for (int i=0; i s2[i]) f++;
else if (s1[i] < s2[i]) s++;
}
if (f > s) cout << "First";
else if (s > f) cout << "Second";
else cout << "Equal";
}
int main() {
int n=231, m=337, k=3;
solve(n, m, k);
return 0;
}
Đầu vào / Đầu ra
Input: 231, 337, 3
Output: Second