Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

So sánh xác suất số nào lớn hơn sau khi xáo trộn chữ số bằng C++

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