u Calculate e
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 43292 Accepted Submission(s): 19824
Problem Description
A simple mathematical formula for e is
where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.
![](https://i-blog.csdnimg.cn/blog_migrate/bcc4c5ac292d59aef31fcf3227405456.gif)
where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.
Output
Output the approximations of e generated by the above formula for the values of n from 0 to 9. The beginning of your output should appear similar to that shown below.
Sample Output
n e - ----------- 0 1 1 2 2 2.5 3 2.666666667 4 2.708333333
解题思路:
是一个简单题目,主要就是套公式,起初虽然读题让输出0~9的e值,可是看到没有样例输入,只有样例输出,一位只用输出到4的e值就可以了,结果wa了,然后根据观察,e的值是保留9位,然后尾部的0都舍去了,然后又直接用%g来输出,还是wa了,然后又改发现,1,2用%g输出,其他的都按,%.9lf输出,提交了一下,结果过了,感觉被坑了。
#include<iostream> #include<stdio.h> #include<string.h> #include<queue> using namespace std; int main() { printf("n e\n"); printf("- -----------\n"); printf("0 1\n"); double sum = 1; double t = 1; int i; for(i = 1; i <= 9; i++) { t = t*i; sum += 1/t; if(i <= 2) printf("%d %g\n",i,sum); else printf("%d %.9lf\n",i,sum); } }