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

Số nguyên đối xứng trong C++


Cho số nguyên không âm num. Kiểm tra xem nó có phải số đối xứng (palindrome) hay không, không dùng chuỗi.

Ví dụ: 1331 → true.

Giải thuật: Đảo ngược số bằng phép chia lấy dư và so sánh với số gốc.

  • ret = 0, x = num.
  • Khi num > 0: d = num % 10, ret = ret * 10 + d, num /= 10.
  • Trả về x == ret.

Ví dụ

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

class Solution {
public:
    bool solve(int num) {
        int ret = 0, x = num;
        while (num > 0) {
            int d = num % 10;
            ret = ret * 10 + d;
            num /= 10;
        }
        return x == ret;
    }
};

int main() {
    Solution ob;
    cout << (ob.solve(1331));
}

Đầu vào

1331

Đầu ra

1