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.
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
要求用给出的公式输出当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;
}