我们应该使用这种公式计算e ^ x:
e ^ x = 1 +(x ^ 1/1!)+(x ^ 2/2!)......
到目前为止我有这个代码:
while (result >= 1.0E-20 )
{
power = power * input;
factorial = factorial * counter;
result = power / factorial;
eValue += result;
counter++;
iterations++;
}
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,因为阶乘是长的类型,我实际上不能存储大于20的数字!所以会发生的事情是程序在到达那个点时输出有趣的数字.
正确的解决方案可以具有至多709的X值,因此e ^ 709应该输出:8.21840746155e + 307
该程序是用C++编写的.