回文数 递推 C++
时间: 2024-08-28 11:04:19 浏览: 63
回文数是指正序读和反序读都一样的数字,比如121,12321等。在C++中,你可以通过递归的方式实现判断一个数是否为回文数的功能。递归是一种函数或过程调用自身的技术,通常用于解决那些可以分解成相似子问题的问题。
下面是一个简单的C++递归函数的例子,用于检查一个整数是否是回文:
```cpp
#include <iostream>
bool isPalindrome(int n, int start = 0) {
// 如果start位置超过了中间点,说明已经比较完了,都是回文
if (start >= (n / 2)) {
return true;
}
// 检查当前位和倒数第二位是否相等
if (n / 10 != n % 10) {
return false; // 不是回文
}
// 继续检查剩余部分
return isPalindrome(n / 10, start + 1);
}
int main() {
int num;
std::cout << "请输入一个整数:";
std::cin >> num;
if (isPalindrome(num))
std::cout << num << " 是回文数\n";
else
std::cout << num << " 不是回文数\n";
return 0;
}
```
在这个函数中,`isPalindrome` 函数接收一个整数 `n` 和一个起始位置 `start`,如果起始位置大于等于整数的一半,说明已经检查完一半并且相等,则返回 `true`;否则,检查当前位置和下一个位置的数字是否相等,如果不等则返回 `false`,然后递归地继续处理剩下的位。
阅读全文