编程论坛
注册
登录
编程论坛
→
C++教室
一个程序需要帮忙
suckdog
发布于 2008-03-23 14:59, 626 次点击
我现在要写一个e^x的程序, 测试数 x=2.5, 答案应该是 12.18249396, 这个在计算器上可以算出来, 但是写程序怎么写呢??
7 回复
#2
zjl138
2008-03-23 16:15
数学库知道吗?
pow(e,x)不就行了。
#3
suckdog
2008-03-24 01:55
这样不行, 应为e电脑不懂是什么, 所以谁知道e^x公式的朋友麻烦给我一下
有人说 e^x=1.0+x+x^2/2!+......x^n/n!
但是我用这个公式手算e^2.5 他不等于12.1824 这是怎么回事
#4
zjl138
2008-03-24 06:51
把你的代码贴出来看一下。
#5
suckdog
2008-03-25 01:05
程式我是这样写的, 我的测试数为 x=2.5, 答案出来了, 但是我想要答案精确到0.000001怎么弄, 我现在的答案只能精确到0.0001。 我现在的到的是 e^2.5=18.1825, 我想要e^2.5=12.18249396, 高手指教指教
#include <iostream.h>
#include <stdlib.h>
#include <cmath>
int main()
{
float i=1.0;
double aseries=1.0, aterm=1.0, denum=1.0, p_denum, num, x;
cout<<"Input a number for 'x'.\n";
cin>>x;
do
{
num=pow(x, i);
p_denum=denum;
denum=(p_denum*i);
i=i+1.0;
aterm=num/denum;
aseries=aseries+aterm;
}while (aterm>0.000001);
cout<<"for x equals "<<x<<", e^x="<<aseries<<endl;
system("PAUSE");
return 0;
}
#6
newyj
2008-03-25 10:56
cin.precision(6)好象是这样吧
#7
suckdog
2008-03-25 11:04
有别的方法了吗??
#8
handongxue
2008-03-25 15:16
改写cout语句为下面形式
cout<<"for x equals "<<x;
cout.precision(8);
cout<<", e^x="<<fixed<<aseries<<endl;
计算是精确的,只是输出格式不正确。
1