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

Kiểm tra số Mystery (tổng 2 số đảo ngược) C++


Mystery Number – Số N = a + b, trong đó b là số đảo ngược của a (ví dụ: 121 = 29 + 92).

Thuật toán

  • Duyệt a từ 1 đến N/2.
  • Tính reverse(a).
  • Nếu a + reverse(a) = N → tìm thấy.

Chương trình C++

#include <bits/stdc++.h>
using namespace std;

int reverseNum(int n) {
    int rev = 0;
    while (n > 0) {
        rev = rev * 10 + n % 10;
        n /= 10;
    }
    return rev;
}

bool isMystery(int n) {
    for (int a = 1; a <= n/2; a++) {
        int b = reverseNum(a);
        if (a + b == n) {
            cout << n << " = " << a << " + " << b << "\n";
            return true;
        }
    }
    return false;
}

int main() {
    vector test = {121, 22, 33, 101, 100};
    for (int n : test) {
        if (!isMystery(n)) cout << n << " khong phai Mystery Number\n";
    }
    return 0;
}

Kết quả

121 = 29 + 92
22 = 11 + 11
33 = 12 + 21
101 khong phai Mystery Number
100 khong phai Mystery Number