使用static计算阶乘——无参函数写法
#include <stdio.h>
double fac();
int main(void)
{
int i, n;
double Sum = 0;
scanf("%d", &n);
for (i=1; i<=n; i++)
{
Sum += 1 / fac();
}
printf("S=1/1!+1/2!+...+1/%d!=%.15f", n, Sum);
return 0;
}
double fac( )
{
static double f=1.0;
static double i=1.0;
static int flag=0;
if(flag==0)
{
flag=1;
return 1;
}
if(flag==1)
{
i=i+1;
f=f*i;
}
return f;
}