首页 > 解决方案 > 使用莱布尼茨公式的 Pi 近似

问题描述

我似乎找不到我的代码有什么问题。只要我输入任何大于 0 的整数,它就不应该给我任何否定的答案。

#include <iostream>
#include <math.h>
using namespace std; 

int k;

double getPi(int = k) {
  double num1, num2=0;
  const int p = 4;

  for(int i = 1; k >= i; i ++) {
    num1 = pow(-1, k + 1)/(2 * k - 1);
    num2 = num2 + num1;
  }
  return num2 * p;
}

int main() {
  cout << "Iterations: ";
  cin >> k;
  cout << "Pi is approximated to be " << getPi(k);
}

标签: c++

解决方案


在下面的行中使用i而不是k

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

推荐阅读