用c++求e的x次方,根据公式计算数值ex = 1 + x/1! + x2/2! + x3/3! + …

精确到5位

#include<iostream>
#include<cmath>
using namespace std;

long factorial (int ); //计算阶乘函数声明

int main()
{
int index=6;// 这个数字可以自己调,越大精度越高,不过最好不要超过15,太大了LONG类型装不下
int x;
double result=0; //存放结果
cout<<"请输入次方X;"<<endl;
cin>>x;

for(int i=0;i<=index;i++)
{
long fac=factorial (i);
result +=static_cast<double>(pow(x,i)/fac); //把结果强制转换乘DOUBLE类型
}

cout<<"e的"<<x<<"次方是:"<<result<<endl;
system("pause"); //为了使你生成的EXE文件执行后能够暂停下来
return 0;
}

long factorial (int n ) // 外部函数,用来计算阶乘的
{
long fact=1;
for (int i=1;i<=n;i++)
fact*=i;
return fact;

}

VS 6.0下编译通过。。看懂方法就可以了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-05
算出行列式的值,再整理成只和x1+x2+x3,x1x2+x2x3+x3x1,,x1x2x3这三项有关的形式,利用三次方程韦达定理带入系数可求。
第2个回答  2008-12-07
用循环就可以了啊。
还有,你的问题没有说清楚,这是个无限计算的式子,你得给个精度限定。
第3个回答  2008-12-08
这个要看精度~~

精度不同,写法不一样
第4个回答  2008-12-07
不明白你的意思。
相似回答