我试图找到 e 的 x 次方。请指出我当前的实施可能有什么问题,而不是简单地提出新的/更有效的解决方案(我可以在网上找到很多)。似乎存在逻辑或运行时错误,调试它没有显示任何内容。提前致谢!
cmath 库已包含在内,程序编译良好..运行时停止
double find_e_power_x(int x){
int i = 1, j = 1, count = 1, accuracy = 15;
double xd = static_cast<double>(x); //pow takes double args
double jd = static_cast<double>(j);
double epx = 1.0;
while ( count < accuracy ){
while ( ++i && ++j) {
epx += ( pow(xd,jd) / fact(i) ); //static_cast
count++;
}
}
return epx;
}
针对评论(指出我的无限内循环),
编辑:
while ( count < accuracy ){
epx += ( pow(xd,jd) / fact(i) ); //static_cast
count++;
i++;
j++;
}
input =3 答案不正确,尽管它给出的输出为 3.15485
下面是最终版本工作正常
i/p = 4
o/p = 54.8278
double find_e_power_x(int x){
int i = 1, count = 1, accuracy = 15;
double xd = static_cast<double>(x); //pow takes double args
double id = static_cast<double>(i);
double epx = 1.0;
while ( count < accuracy ){
epx += ( pow(xd,id) / fact(i) ); //static_cast
++count;
++id;
++i;
}
return epx;
}