c语言用只接收一个参数的递归判断一个数字是否为回文数字
时间: 2023-06-19 12:09:43 浏览: 62
可以使用以下递归函数来判断一个数字是否为回文数字:
```c
#include <stdio.h>
int isPalindrome(int num, int temp) {
if (num == 0) {
return temp;
}
temp = temp * 10 + num % 10;
return isPalindrome(num / 10, temp);
}
int main() {
int num, temp = 0;
printf("请输入一个数字:");
scanf("%d", &num);
if (num == isPalindrome(num, temp)) {
printf("%d是回文数字", num);
} else {
printf("%d不是回文数字", num);
}
return 0;
}
```
该递归函数将输入的数字从个位数开始逐个提取,并将它们组合成一个新的数字。如果最终组合成的数字与原始输入的数字相同,则该数字是回文数字。
相关问题
回文数字用递归写一个函数,不能转换为字符数组c语言
好的,以下是一个使用递归实现回文数字判断的函数:
```c
int is_palindrome(int num, int* reverse_num) {
if (num == 0) {
*reverse_num = 0;
return 1;
} else {
int digit = num % 10;
int temp = *reverse_num * 10 + digit;
if (is_palindrome(num / 10, &temp)) {
*reverse_num = temp;
return (temp == num);
} else {
return 0;
}
}
}
```
这个函数接受一个整数 `num` 和一个指向整数的指针 `reverse_num`,并返回一个布尔值表示 `num` 是否是回文数字。在函数中,我们首先判断 `num` 是否为 0,如果是,则将 `reverse_num` 设为 0,并返回 1(因为 0 是回文数字)。如果 `num` 不为 0,我们先通过递归调用 `is_palindrome` 函数来判断 `num` 的前一位是否也是回文数字,同时计算出 `num` 的反转数字 `temp`。最后,我们将 `temp` 赋值给 `reverse_num`,并返回 `temp == num` 表示 `num` 是否是回文数字的结果。
使用方法如下:
```c
int num = 12321;
int reverse_num;
if (is_palindrome(num, &reverse_num)) {
printf("%d is a palindrome number\n", num);
} else {
printf("%d is not a palindrome number\n", num);
}
```
输出结果为:
```
12321 is a palindrome number
```
python使用递归法判断一个字符串是否为回文。
好的,这个问题可以通过Python递归方法来判断一个字符串是否为回文。代码示例如下:
def is_palindrome(s):
if len(s) < 2:
return True
if s[0] != s[-1]:
return False
return is_palindrome(s[1:-1])
s = input("请输入一个字符串:")
if is_palindrome(s):
print(s + " 是回文")
else:
print(s + " 不是回文")