e^xのマクローリン展開式

1486 ワード

/*
*             
* Copyright (c)2013,            
* All rightsreserved.
*     : fibnacci.cpp
*       :   
*     :2013  11   25   
*    : v1.0
*
*     :
*     :                          。          ,                    ,                                     。
                   ,      “   ” 0   。e^x         e^x=1+x+x^2/2!+......,      e^x  。
    :      1e-7
Input
      N,         ,  N ,      ,      x
Output
  N ,      x   ex  。          7 。
Sample Input
*     :
*/
#include <iostream>
#include <iomanip>
#include<cstdio>
#include <cmath>
using namespace std;
double taile(double x);
int main()
{
    int n,i;
    double y;
    cin>>n;
    for(i=0; i<n; i++)
    {
        int x;
        cin>>x;
        y=taile(x);
        cout<<setiosflags(ios::fixed)<<setprecision(7)<<y<<endl;
    }
    return 0;
}
double taile(double x)
{
    if(x==0)
        return 1;
    int i=0,t;
//y    ,  y>1e-7
    double sum,y=1,f=0;
    while(y>1e-7)
    {
        sum=1;
        i++;
        for(t=0; t<i; )
            t++,sum*=t;
        y=pow(x,i)/sum,f+=y;
    }
    return f+1;
}