1.递归一定要有退出条件,否则将无限循环。
2.关于递归的返回值是要注意的。
下面列举两种方法,原理相同,递归判断。
方法1:
bool charge(int p[],int n)
{
static int m=0; //这个一定要定义为static,否则每次调用都是从0开始。
if(m == n-1)
return true;
else
{
if(p[m]<p[m+1])
{
m=m+1;
return charge(p,n); //最初是没有把charge(p,n)作为return语句,这样,我在内层递归结束,返回结果后,调用的程序不知道该怎么返回结果了。只有这样将内存递归结果做为返回值返回给上层&#