c++ - 使用莱布尼茨公式的 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);
}
解决方案
在下面的行中使用i
而不是k
num1 = pow(-1, k + 1)/(2 * k - 1);
推荐阅读
- swift - 如何通知一个目标的获取结果控制器另一个目标的托管对象上下文中发生的更改?
- c# - 是否可以在 HTML 帮助器方法中确定 ASP.NET Core 托管环境?
- php - 如何从单选按钮中一一提交选择的答案
- linux - 构建一个查找目录中所有文件的 UNIX 管道(使用 find 、xargs 和 du 命令)
- c# - 仅在存在时选择类相关数据
- android - 使用 Retrofit 和 OkHttp 显示没有 Internet 连接对话框
- ionic-framework - 从 Firestore 数据创建单选按钮警报
- amazon-web-services - AWS 签名 URL 问题
- tensorflow - Tensorflow freeze_graph 到 tflite for android app
- symfony - Doctrine 映射类型实体到 id,id 到实体