如何用递归思想 求n的阶乘 C语言
首先,我讲一下什么是递归?
一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由里到外退出。
下面我们通过一个求阶乘的例子,看看递归函数到底是如何运作的。
求阶乘 n! 的计算。
C语言代码如下:
#include<stdio.h>
int main()
{
int n;
int y;
printf("input a number:");
scanf("%d",&n);
y=xxy(n);
printf("%d!=%d\n",n,y);
return 0;
}
int xxy(int n)
{
int f;
if(n<0)
printf("error\n");
else if(n==0||n==1)
f=1;
else
f=xxy(n-1)*n;
return(f);
}
递归的退出
当递归进入到最内层的时候,递归就结束了,就要开始逐层退出了,也就是逐层执行 return 语句。