递归函数是指调用自己的函数;
分为直接递归和间接递归
编写代码计算n的阶乘:n!
以递归方式计算
以循环语句计算
并比较两者的区别
#include <stdio.h>
//以递归函数实现
//long Fact(long n)
//{
// if(n==1) return 1;
// return n*Fact(n-1);
//}
//以循环语句实现
long Fact(long n)
{
long temp=1,i;
for(i=1;i<=n;i++)
{
temp *= i;
count++;
}
return temp;
}
int main(void)
{
long n,i,result;
printf("Input n:\n");
scanf("%d",&n);
result = Fact(n);
printf("count=%d,%d!=%d\n",count,n,result);
return 0;
}
主要区别在于:
1.递归函数优点:简单、直接,和阶乘定义相似
2.递归函数缺点:需要消耗更多的执行时间和内存