HDU 1012 u Calculate e(水题)

来源:互联网 发布:python exit 1 编辑:程序博客网 时间:2024/06/06 06:47

u Calculate e

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 29323    Accepted Submission(s): 13047

题目链接
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.
 

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 11 22 2.53 2.6666666674 2.708333333
 

要求用给出的公式输出当n=0到9的e的大小。

此题在于输出格式:╮(╯▽╰)╭。。。。。cout默认6位精度,而题目要求输出小数点后九位,所以要用到格式控制。。。。。。

╮(╯▽╰)╭。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。╮(╯▽╰)╭。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

代码:

#include <iostream>#include<stdio.h>#include<iomanip>using namespace std;long double f[10];void F(){    int i,j;    int c=1;    f[0]=1.0;    for(i=1;i<=9;i++)    {        c=1;        for(j=1;j<=i;j++)        {            c*=j;        }        f[i]=(long double)1.0/c;    }}int main(){    int i,j;    F();    long double s=0;    cout<<"n e"<<endl;    cout<<"- -----------"<<endl;    for(i=0;i<=9;i++)    {        s+=f[i];        if(i>=3)        cout<<setiosflags(ios::fixed)<<setprecision(9);        cout<<i<<" "<<s<<endl;    }    return 0;}


0 0