一个函数在函数体内调用自己,就被称作递归调用,也即函数直接或间接地调用函数自身。函数的递归调用时一种很有用的编程技巧。有时可以使用递归来实现循环。对于某些问题,用递归的思路来解决问题,可以让问题更加清晰。
以下代码,分别用循环,和递归2种思路来求10的阶乘。
//用循环实现
#include <stdio.h>
main()
{
int i;
float f=1;
for(i=1;i<=10;i++)
f*=i; //f=f*i;
printf("10! = %10.0f\n",f);
}
//用递归实现
#include <stdio.h>
float fac(int n)
{
float f;
if(n<0)
{
printf("n<0,data error!\n");
return -1;
}else if(n==0||n==1)
f=1;
else
f=n*fac(n-1);
return f;
}
main()
{
int n=10;
float f;
f=fac(n); //调用fac函数计算阶乘
printf("n! = %10.0f\n",f);
}