PI近似问题

0x4*_*2D2 1 c++ math

我正在尝试模拟pi到5位小数的近似值.这是我所依据的公式:

在此输入图像描述

但我没有使用无穷大,而是将其近似为5位小数.这是我的代码,但我得到的结果是0.我的猜测是因为整数除法,但我尝试将0加到其中一个除数但它没有帮助:

#include <cmath>
#include <iostream>

int main() {

    int sum = 0;

    for (int k = 0; k < 5; ++k) {

        sum += pow(-1, k) / (2 * k + 1);

    }

    sum *= 4;

    std::cout << sum;

}
Run Code Online (Sandbox Code Playgroud)

这部分:

sum += pow(-1, k) / (2 * k + 1);
Run Code Online (Sandbox Code Playgroud)

我尝试过改为:

sum += ( pow(-1, k) + 0. ) / (2 * k + 1);
Run Code Online (Sandbox Code Playgroud)

要么

sum += ( pow(-1, k) * 1. ) / (2 * k + 1);
Run Code Online (Sandbox Code Playgroud)

但结果仍然是0.我能做错什么?

Bla*_*ear 5

你必须声明sumdouble.

  • `k`可以作为一个`int`,可以保留. (2认同)