其实递归并不难,我刚学时也是一头雾水,后来弄明白了其实很简单,函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。帮你找了点资料,希望对你有用 o(∩_∩)o...
函数的递归调用是C语言的一个主要特点。
1、在调用函数f的过程中,又要调用f函数,这是直接递归调用本函数;
在调用函数f1的过程中要调用函数f2,而在调用f2函数过程中又要调用f1函数,这就是函数的间接递归调用。
2.递归过程必须解决两个问题
递归计算的公式
递归结束的条件
3.递归过程的算法描述:
if (递归结束条件)
return (递归结束条件下的返回值);
else
return (递归计算公式);
4.递归调用函数的调用方法和一般函数的调用方法完全相同
【例1】编写一个计算n!(n>1)的递归调用函数
main()
{long fact(int n);
int n;
printf(“\nPlease enter n:”);
scanf(“%d”,&n);
printf(“\n n!=%ld”,fact(n));
}
long fact(int n);
{if (n<1)
{ printf (“input error!\n”);
return(-1); }
else
if (n= =1) return (1);
else return (n*fact(n-1));
}
程序执行过程:分2个阶段
Ø递归过程:将原始问题不断转化为规模小了一级的问题,从未知向已知推进,最终达到递归的结束条件;
Ø回溯过程:从已知条件出发,沿递归的逆过程逐一求值返回,直至递归初始处,完成递归调用(如图)。
函数递归就是自己调用自己,直到到达某个条件。比如求一个整数n的阶乘:
int f(int n)
{
if ( n == 1)
return 1;
else
r return n*f(n-1);
}
其实很简单,就是懂一个原理。在你设计好一个函数之后开始对其调用时(在它的调用代码里面又调用了它本身),注意结束条件哈!其他的没了....