C 中指数函数的递归计算
e(x)=1+ x/1!+ x^2/2!+ x^3/3!+ ... + x^n/n!与 x^n/n!<跨度> Ɛ#include
#include
unsigned long fact_recursive (unsigned short nombre)
{
if (number == 0)
return 1跨度>;
else
返回数字 * fact_recursive(数字 - 1跨度>);
}
unsigned int puiss(long int x, int n)
{
if(n == 0)
返回 1;
if(n == 1)
return x;
int x2 = powers(x,n/2跨度>);
if(n%2 == 0)
返回 x2*x2;
return x2 * x2 * x;
}
double calcul_formule(int x, int n, int epsilon)
{
双分数 = (double)puiss(x,n) / (double)fact_recursive(n);
if(n==0)
{
return 1跨度>;
}
else{
//验证条件 if powers(x,n)/n!>epsilon
if(fraction < epsilon)
返回分数+calcul_formule(x,n-1跨度>,epsilon);
else
返回 calcul_formule(x,n-1跨度>,epsilon);
}
}
int main(int argc, char *argv[])
{
int x,n,epsilon;
printf(输入 x 的值:”);
scanf(%d”,&x);
printf(输入 n 的值:”);
scanf(%d”,&n);
printf( 输入 Epsilon 的值:);
scanf(%d”,&厄普西隆);
//公式的计算
printf(exp( %d ) = %f\n”,x,calcul_formule(x,n,epsilon) );
system(pause”);
}
跨度>