第1个回答 2008-05-14
#include <stdio.h>
long fact(long n)
{
if (n==0||n==1)
return 1;
return n*fact(n-1);
}
int main()
{
double e=0;
long n;
printf("Please input n:\n");
scanf("%ld",&n);
for (int i=0;i< n;i++)
{
e+=1.0/fact(i);
}
printf("%f",e);
printf("\n");
return 0;
}
可以输入n,然后求得对应的e值,当n给的越大时,得到的e值就会更精确!
第2个回答 2008-05-14
支持一楼!
#include <stdio.h>
int main()
{
double e=0;
for (int i=0;i<15;i++)
{
e+=1.0/fact(i);
}
printf("%f",e);
return 0;
}
long fact(long n)
{
if (n==0||n==1)
return 1;
return n*fact(n-1);
}
第3个回答 2008-05-14
一楼的很好!递归用的不错
第4个回答 2008-05-14
#include<stdio.h>
double f(int n)
{double m=1;int i;
for(i=1;i<=n;i++)
m*=i;
return m;
}
void main()
{
int n,i;double e=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
e+=1/f(i);
printf("%lf",e);
}
第5个回答 2008-05-14
long fact(long n)
{
if (n==0||n==1)
return 1;
return n*fact(n-1);
}
int main()
{
double e=0;
for (int i=0;i<15;i++)
{
e+=1.0/fact(i);
}
printf("%f",e);
return 0;
}