(HDU)1012 --u Calculate e(计算e)

问题描述
e的一个简单的数学公式

 

其中n允许取无穷大, 这实际上可以使用相对小的n值产生非常准确的e近似值。
 

输出
输出由上述公式生成的e的近似值,n的值从0到9.输出的开头应该类似于下面显示的。
 

示例输出
n e
- -----------
0 1
1 2
2 2.5
3 2.666666667
4 2.708333333

 

 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 double fac(int x)
 7 {
 8     int f;
 9     if(x==0||x==1)
10     {
11         f=1;
12     }
13     else
14     {
15         f=x*fac(x-1);
16     }
17         return(f);
18 }
19 
20 double ans(int n)
21 {
22     int i;
23     double s=0;
24     for(i=0;i<=n;i++)
25     {
26         s+=1/(fac(i));
27     }
28     return s;
29 }
30 
31 int main()
32 {
33 
34     int i;
35     printf("n e\n");
36     printf("- -----------\n");
37     printf("0 1\n");
38     printf("1 2\n");
39     printf("2 2.5\n");
40     for(i=3;i<=9;i++)
41     printf("%d %.9lf\n",i,ans(i));
42     return 0;
43 }
查看代码

这题要注意的是n为0,1和3时候的精确度,分别输出。

posted @ 2016-12-01 22:19  ACDoge  阅读(371)  评论(0编辑  收藏  举报