c循环实例,求e的近似值。




```#include
using namespace std;
int main()
{
    double i = 1.0, x=1.0, sum = 0;
        while (x <1e-7)
        {
            sum = sum + 1 / i;
            x = 1 / i;
            i = i * (i + 1);
        }
    cout << sum << endl;
    return 0;
}

求e的近似值,这是我写出的代码,跑出来结果是0,求问哪里错了



while (x <1e-7)
->
while (x >1e-7)
否则循环直接跳过去了。

你的x初始化为1,那个while循环进不去的吧?
所以,结果是0。

公式不对,你的i应该是阶乘的
第一次是 1,第二次是2,第三次是6,第四次就是42,实际应为24

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^