3、用递归方法编程实现
(1!+2!+3!+.......+n!),
不断增大N值,实验比较两种算法的运行效率。观察N增大到多大时,会导致递归算法在运行时崩溃。定义一个static变量,记录递归调用的次数。
3、用递归方法编程实现
(1!+2!+3!+.......+n!),
不断增大N值,实验比较两种算法的运行效率。观察N增大到多大时,会导致递归算法在运行时崩溃。定义一个static变量,记录递归调用的次数。
n大于20一般就会出错。
#include "stdio.h"
static int cnt = 0;
//求n的阶乘
int fun(int n){
if(n==1){
return 1;
}else{
cnt++;
return n*fun(n-1);
}
}
void main()
{
int n;
int i;
long sum = 0;
printf("请输入n:");
scanf("%d",&n);
for(i=1;i<=n;i++){
sum += fun(i);
}
printf("1!+2!+...+%d!=%ld\n",n,sum);
printf("共调用%d次",cnt);
}