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
My solution:
#include<iostream> #include<iomanip> using namespace std; int main(void) { double f[11]; int n[11]; n[0]=1; f[0]=1; int s(int a); double t(int *n,int b); for (int i=1;i<=9;i++) { n[i]=s(i); f[i]=t(n,i); } cout<<"n e"<<endl<<"- -----------"<<endl<<"0 1"<<endl<<"1 2"<<endl<<"2 2.5"<<endl; for (int i=3;i<=9;i++) cout<<i<<' '<<setiosflags(ios::fixed)<<setprecision(9)<<f[i]<<endl; return 0; } int s(int a) { int c=1; for (int i=1;i<=a;i++) c*=i; return c; } double t(int *n,int b) { double m=0.0; for (int i=0;i<=b;i++) m+=1.0/n[i]; return m; }