Well it's almost like the series for exp(x), except the signs are alternating and it's missing the x^1 term and the x^0 term has the wrong sign. If consider the series you get for exp(-x), you should be close to the answer :)

I'm a newbie here but as much as i know, shouldnt this thread not be in C++? Its math, for heavens sake. Also, its wierd that someone has come asking for help with random math equations. Like a binomial theorem that goes on forever :P.

This should get you pretty close. Each term has the form (-1^n)*((x^n)/n!) where 0! is defined as 1 and x^0 is also defined as 1. E(x) is the sum of the number of terms you want to use. You calculate the sum using a running total within a loop adding each term as it is calculated. Calculate each term by changing the form to: a *(b/c) and then calculate a, b and c before calculating the term. a, b, and c can each be calculated using loops. As an alternative a and b could be calculated using pow(). As a further alternative a could be calculated using an if statement and n % 2.

I wrote two simple C++-functions:
-> One wich raises a number x to the power of y ( apow(x, y); )
-> One which calculates the faculty of number x ( faculty(x); )

long long faculty(long x)
{
long long y = 1;
y = 1;
for(int i = 1; i < (x+1); i++)
y = y * i;
return y;
}
long double apow(float x, int y)
{
long double result = 1;
if(y == 0)
return result;
if(y < 0)
{
y = -y;
for(int i = 0; i < y; i++)
result = result * x;
return 1/result;
}
for(int i = 0; i < y; i++)
result = result * x;
return result;
}

And here's a full example where you can see these functions at work:

#include <iostream>
long long faculty(long x);
long double apow(float x, int y);
using namespace std;
int main(void)
{
long double answer;
int x = 1;
cout << "6! = " << faculty(6) << endl;
cout << "10^2 = " << apow(10, 2) << endl;
cout << "10^-2 = " << apow(10, -2) << endl;
cout << "10^0 = " << apow(10, 0) << endl;
return 0;
}
long long faculty(long x)
{
long long y = 1;
y = 1;
for(int i = 1; i < (x+1); i++)
y = y * i;
return y;
}
long double apow(float x, int y)
{
long double result = 1;
if(y == 0)
return result;
if(y < 0)
{
y = -y;
for(int i = 0; i < y; i++)
result = result * x;
return 1/result;
}
for(int i = 0; i < y; i++)
result = result * x;
return result;
}