如何计算π
2024-11-24 09:21:49
发布于:广东
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
int n;
const int N = 1e6+5;
double pie,a[N],b[N],t[N],p[N];
int main(){
cin >> n;
a[0] = 1.0;
b[0] = double(1.0/sqrt(2));
t[0] = 1.0/4;
p[0] = 1.0;
for(int i=1;i<=n;i++){
a[i] = double((a[i-1]+b[i-1])/2.0);
b[i] = double(sqrt(a[i-1]*b[i-1]));
t[i] = double(t[i-1] - p[i-1]*1.0*pow(a[i-1]-a[i],2));
p[i] = double(2.0*p[i-1]);
}pie = double(pow(a[n]+b[n],2)/(4.0*t[n]));
printf("%.32lf",pie);
return 0;
}
使用高斯勒让德算法计算出pie
此算法迭代次数少就可算出很多位
但由于C++语言有所限制导致计算到某一数字就停了
这里空空如也
有帮助,赞一个