#include
double factorial(int m);//返回正整数n的阶乘结果
double sum(int n); //返回累加结果
int main(void)
{
int n;
scanf("%d",&n);//格式化地从缓冲区里读取用户键入的数字
printf("s=%.16f\n",sum(n)); //截取小数点后16位
return 0;
}
double sum(int n)
{
double result=0;//最初结果当然是“零”啦!
int p;
for (p=1;p<=n;p++)
result=result + 1/factorial(p);//累加
return result;
}
double factorial(int m)
{
double result=1;//“0”的阶乘是“1”
int i;
for (i=1;i<=m;i++)
result=result*i;
return result;
}
/*
看到好多人踩我的答案,
然后我觉得是最开始的答案太垃圾
因为我回答这个问题的时候,
我也是刚学C语言,
这个程序是我还没上课就预习,
熬夜自学C语言,简单从书上抄几段代码
根据自己的粗略的理解写出来的……
最后一次更新答案的时间为2020.10.31
*/