给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数 是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 用c++编写程序
时间: 2024-09-12 20:06:54 浏览: 46
你可以使用C++编写一个简单的函数来检查一个整数是否是回文。这里是一个基本的解决方案:
```cpp
#include <iostream>
#include <string>
bool isPalindrome(int x) {
// 首先处理边界条件,负数不是回文,0和1是特殊的回文
if (x < 0)
return false;
if (x == 0 || x == 1)
return true;
// 将数字转换为字符串便于比较
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;
std::cout << "Enter an integer: ";
std::cin >> num;
bool result = isPalindrome(num);
if (result)
std::cout << num << " is a palindrome.\n";
else
std::cout << num << " is not a palindrome.\n";
return 0;
}
```
这个程序首先检查输入的整数是否小于0,如果是则直接返回false。然后它将整数转成字符串,用两个指针分别指向字符串的首尾,逐个字符比较。如果有任何一个位置的字符不相等,就立即返回false。如果所有字符都匹配了,那么就是回文,返回true。
阅读全文