#include <stdio.h>
#include <string.h>
int isPalindromeRecursive(char str[], int start, int end) {
if (start >= end) {
return 1;
}
if (str[start] != str[end]) {
return 0;
}
return isPalindromeRecursive(str, start + 1, end - 1);
}
int isPalindromeIterative(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return 0;
}
start++;
end--;
}
return 1;
}
int main() {
char str[100];
printf("输入一个字符串:");
scanf("%s", str);
if (isPalindromeRecursive(str, 0, strlen(str) - 1)) {
printf("递归实现 - 是回文\n");
} else {
printf("递归实现 - 不是回文\n");
}
if (isPalindromeIterative(str)) {
printf("递推实现 - 是回文\n");
} else {
printf("递推实现 - 不是回文\n");
}
return 0;
}