计算e的x次方
题目:编写程序,计算
ex=1+x+(x2)/(2!)+(x3)/(3!)+(x4)/(4!)+…+(x^n)/n!
说明:e^x表示e的x次方,2!表示2的阶乘
输入输出格式要求:
输入格式:x n回车
e^x, x, n均用double类型存储。
要求输出小数点后6位。
只输出运算结果,请不要输出其他字符,遇到异常情况(如n为负数),输出error
例如:
输入:3 10回车
输出:20.079665
输入:5.24 11回车
输出:187.210665
输入:5 -10
输出:error
这道题的算法逻辑和前面我写的求n的值有点相似,大家可以两个连着看,加深印象
下面是代码:
#include
int main()
{
double x,k=1,f=1,e,n;
double a=0;
scanf("%lf %lf",&x,&n);//double输入的话需要以lf来表示
if(n < 0)
printf(“error”);
else
{
for(int i = 1;i <= n;i++)
{
a =pow((double)x,(double)i);//pow里面的数也必须是double型,不然会报错,pow的意思是x的i次方
k = k*i;//下面的阶乘
e = a/k;//整个式子的表达
f += e;//每循环一次相加
}
printf("%.6lf",f);//保留小数点后6位
}
return 0;
}
欢迎大家一起讨论。