问题七: f=1!+1/2!+1/3!+1/4!+...+1/n!(n为一定大的数,太大了会溢出)

2014-11-23 22:37:14 · 作者: · 浏览: 4

/***************************************************************
累加(C语言

AUTHOR:liuyongshui
DATE:********
***************************************************************/
/*
问题七: f=1!+1/2!+1/3!+1/4!+...+1/n!(n为一定大的数,太大了会溢出)

*/

#include

void f(int m); //原函数声明

int main()
{
int n;

printf("请输入一个数(不能太大):");
scanf("%d", &n);

f(n); //把n带入f()函数

return 0;
}

// f()函数定义
void f(int m)
{
int i;
int j;
int s=1;
double sum=0.0;

for(i=1; i<=m; i++)
{
for(j=1; j<=i; j++)
{
s*=j; //计算i!
}

sum+=1.0/s; //sum=sum+1.0/s;

s=1; //算完i!后,s赋值为1
}

printf("%lf\n", sum); //输出结果
}