C++判断回文数的方法有多种,以下为其中两种常见的方法:
方法一:将整数转换为字符串,然后比较字符串的首尾字符是否相同。
#include <iostream>
#include <string>
bool isPalindrome(int num) {
std::string str = std::to_string(num);
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
int num;
std::cout << "请输入一个整数:";
std::cin >> num;
if (isPalindrome(num)) {
std::cout << "是回文数" << std::endl;
} else {
std::cout << "不是回文数" << std::endl;
}
return 0;
}
方法二:将整数倒序,然后判断倒序后的整数是否与原整数相等。
#include <iostream>
bool isPalindrome(int num) {
if (num < 0 || (num % 10 == 0 && num != 0)) {
return false;
}
int reversedNum = 0;
while (num > reversedNum) {
reversedNum = reversedNum * 10 + num % 10;
num /= 10;
}
return num == reversedNum || num == reversedNum / 10;
}
int main() {
int num;
std::cout << "请输入一个整数:";
std::cin >> num;
if (isPalindrome(num)) {
std::cout << "是回文数" << std::endl;
} else {
std::cout << "不是回文数" << std::endl;
}
return 0;
}
以上两种方法都可以判断一个整数是否为回文数,其中方法一需要将整数转换为字符串进行比较,方法二则直接对整数进行倒序操作。