数字回文是一个按正向或反向阅读都相同的数值。例如 4321234 就是一个数字回文。用c语言创建一个递归函数 numpal( ),接收一个整数作为参数,如果是回文返回 1,否则返回0。把该函数纳入一个完整程序运行测试。
时间: 2023-06-19 15:08:58 浏览: 187
好的,下面是完整的程序:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[], int start, int end) {
// 递归的基本情况
if (start >= end) {
return 1;
}
// 如果首尾字符相同,则检查剩余字符是否回文
if (str[start] == str[end]) {
return isPalindrome(str, start+1, end-1);
}
// 如果不相同,则不是回文
return 0;
}
int numpal(int num) {
char str[20];
// 把整数转换成字符串
sprintf(str, "%d", num);
int len = strlen(str);
// 检查字符串是否回文
return isPalindrome(str, 0, len-1);
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (numpal(num)) {
printf("%d 是回文数\n", num);
} else {
printf("%d 不是回文数\n", num);
}
return 0;
}
```
运行结果如下:
```
请输入一个整数:12321
12321 是回文数
```
```
请输入一个整数:12345
12345 不是回文数
```
阅读全文