用c写一个名为rvs的递归函数,接收一个整数作为参数,若是回文数则返回1,否则返回0
时间: 2024-05-13 14:17:49 浏览: 84
C语言--写一个函数,判断一个整数是否为回文数,是返回1,不是返回0(如果一个整数,从左右来读都一样,就称它为回文数
以下是使用 C 语言编写的递归函数 `rvs`,用于检查给定整数是否为回文数:
```c
#include <stdio.h>
int rvs(int num, int original) {
if (num == 0) {
return original;
}
original = original * 10 + num % 10;
return rvs(num / 10, original);
}
int isPalindrome(int num) {
if (num < 0) {
return 0;
}
int reversed = rvs(num, 0);
return num == reversed;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (isPalindrome(num)) {
printf("%d is a palindrome number.\n", num);
} else {
printf("%d is not a palindrome number.\n", num);
}
return 0;
}
```
在该代码中,`rvs` 函数使用递归来反转给定的整数。每次递归都将原始数乘以10并添加余数,直到给定的数为0。最终,`rvs` 函数返回反转后的整数。
`isPalindrome` 函数使用 `rvs` 函数来获取反转后的数字并检查它是否与原始数字相等。如果相等,则原始数字是回文数,`isPalindrome` 函数返回1,否则返回0。
在主函数中,用户被要求输入一个整数,并打印出该数字是否是回文数的结果。
阅读全文