快速判断回文数C++
时间: 2024-09-26 18:08:53 浏览: 35
快速判断一个整数是否是回文数的一种常见做法是通过双指针法,也就是将数字的首尾对齐比较。以下是C++的一个简单示例:
```cpp
#include <iostream>
#include <string>
bool isPalindrome(int x) {
if (x < 0) return false; // 负数不是回文
std::string str = std::to_string(x);
int left = 0, right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) return false;
left++;
right--;
}
return true;
}
int main() {
int num = 121;
if (isPalindrome(num)) {
std::cout << num << " is a palindrome.\n";
} else {
std::cout << num << " is not a palindrome.\n";
}
return 0;
}
```
这个程序首先检查输入的数是否小于零,因为负数不可能是回文。然后它将整数转换成字符串,并用两个指针`left`和`right`从两端开始向中间移动,如果发现字符不匹配就立即返回`false`,否则当两者相遇时说明是回文,返回`true`。
阅读全文