编写一个C++程序,判断输入的5位整数是否是回文数。
时间: 2024-10-20 16:13:18 浏览: 57
js代码-判断一个整数是否是回文数。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 进阶: 你能不将整数转为字符串来解决这个问题吗?
在C++中,我们可以编写一个简单的函数来检查一个五位整数是否是回文数。回文数是指从前往后读和从后往前读都一样的数字,比如121、5665等。下面是一个示例程序:
```cpp
#include <iostream>
bool isPalindrome(int num) {
// 对于五位数,最高位是百位,所以取模9能得到最后两位
int last_two_digits = num % 100;
if (last_two_digits == 0) { // 如果是个位和十位都是0,则直接认为是回文
return true;
}
// 取掉最后两位并除以100继续判断,直到只剩一位
while (num > last_two_digits) {
int first_digit = num / 100;
num = (num % 100) * 10 + first_digit; // 更新num,保留前两位,去掉后两位
if (num != last_two_digits) { // 如果当前不等于最后两位,不是回文
return false;
}
}
return true;
}
int main() {
int input;
std::cout << "请输入一个五位整数:";
std::cin >> input;
if (isPalindrome(input)) {
std::cout << input << " 是一个回文数。\n";
} else {
std::cout << input << " 不是一个回文数。\n";
}
return 0;
}
```
阅读全文