giúp mình với ạ C++ ạ Mình cảm ơn

giúp mình với ạ C++ ạ Mình cảm ơn
Câu trả lời này dùng AI, hãy kiểm tra lại trước khi sử dụng
```cpp
#include
using namespace std;

bool isPalindrome(int n) {
int original = n;
int reversed = 0;

while (n > 0) {
// Lấy chữ số cuối cùng
int digit = n % 10;
// Thêm chữ số vào số đảo ngược
reversed = reversed * 10 + digit;
// Xóa chữ số cuối cùng khỏi n
n /= 10;
}

// So sánh số gốc với số đảo ngược
return original == reversed;
}

int main() {
int n;
cin >> n;

if (isPalindrome(n)) {
cout << "YES" << endl; // Nếu là số đối xứng
} else {
cout << "NO" << endl; // Nếu không phải số đối xứng
}

return 0;
}
```

Giải thích:

1. Hàm `isPalindrome(int n)`: Hàm này kiểm tra xem số nguyên n có phải là số đối xứng hay không.
- Bắt đầu bằng cách lưu lại giá trị gốc của n vào biến `original`.
- Sau đó, qua vòng lặp `while`, ta sẽ lấy từng chữ số từ n (sử dụng toán tử `%`) và tạo thành số đảo ngược (sử dụng biến `reversed`).
- Cuối cùng, hàm sẽ so sánh số gốc với số đảo ngược. Nếu chúng giống nhau, trả về `true`, ngược lại trả về `false`.

2. Hàm `main()`:
- Nhập vào một số nguyên dương n từ người dùng.
- Gọi hàm `isPalindrome(n)` để xác định xem n có phải là số đối xứng không.
- In ra "YES" nếu n là số đối xứng, và "NO" nếu không phải.

Chương trình hoạt động hiệu quả với các số trong giới hạn (n ≤ 10^9) và có thể xử lý mọi số nguyên dương trong phạm vi đó.
Đăng phản hồi