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 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;
}