Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Palindrome Integer in C++: ตรวจสอบเลข Palindrome โดยไม่ใช้ String

กำหนดจำนวนเต็มบวก num ตรวจสอบว่าเป็น Palindrome (อ่านจากซ้าย-ขวา และขวา-ซ้าย ได้เหมือนกัน) โดยห้ามแปลงเป็น String

ตัวอย่าง: 1331 → true

วิธีแก้ปัญหา

  1. เก็บค่าเดิมไว้ใน x
  2. สร้างตัวเลขย้อนกลับ ret โดยวนลูปดึงหลักสุดท้าย (num % 10) และสร้าง ret = ret * 10 + d
  3. ลด num /= 10 จนหมด
  4. เปรียบเทียบ x == ret

ตัวอย่างโค้ด C++

#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));
}

Input

1331

Output

1