//递归实现回文的判断,C++和C的实现方法
//1
#include <iostream>
using namespace std;
int fun(int low, int high, char *str, int length)
{
if (length == 0 || length == 1)
return 1;
if (str[low] != str[high])
return 0;
return fun(low+1, high-1, str, length-2); //返回1代表是, 0代表不是
}
int main()
{
char str[]="aaabaaa";
int length = strlen(str);
cout << fun(0, length-1, str, length) << endl;
system("pause");
return 0;
}
//2
#include "stdio.h"
#include "string.h"
#include "windows.h"
bool isPalindrome(char *str,int n)
{
if (n <= 1)
return TRUE;
else if (str[0] == str[n-1])
isPalindrome(str+1,n-2);
else
return FALSE;
}
void main()
{
char *str = "abcdecba";
int len = strlen(str);
printf("str = %s,是回文吗?%s",str,isPalindrome(str,len)?"Yes":"No");
system("pause");
}
//3
#include <iostream>
using namespace std;
bool isPalindrome(char str[], size_t n)
{
if (n<=1)
{
return true;
}
else if (str[0]==str[n-1])
{
return isPalindrome(str+1,n-2);
}
else
return false;
}
int main()
{
char str[255];
cin>>str;
cout<<(isPalindrome(str,strlen(str))?"Yes":"No")<<endl;
system("pause");
return 0;
}
回文之递归应用
最新推荐文章于 2023-11-10 20:55:19 发布