【发布时间】:2014-10-24 20:14:24
【问题描述】:
/* 但如果我将第 13 行更改为“else return palindrome(s, ++f, --l);”然后代码运行良好。这是什么原因?*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int palindrome(char* s, int f, int l) // f = first index, l = last index;
{
if(f>=l) return 1;
else if(s[f]!=s[l]) return 0;
else return palindrome(s, f++,l--);
}
int main()
{
char a[100];
gets(a);
int len = strlen(a)-1;
printf("len: %d\n",len);
int b = 0;
if(palindrome(a, b , len))
{
printf("Plindrome\n");
}
else
{
printf("not palindrome\n");
}
}
【问题讨论】:
-
您显示的代码已经包含回文(s, ++f, --l) 行。
标签: c++ recursion infinite-loop palindrome