C++ 用C+计算Pi+;
我尝试使用以下公式计算Pi: 这是代码:C++ 用C+计算Pi+;,c++,formula,pi,C++,Formula,Pi,我尝试使用以下公式计算Pi: 这是代码: #include <iostream> #include <cmath> using namespace std; int main() { long double n; cin >> n; long double first_part = 0.0, second_part = 0.0, pi = 0.0; for(int i = 0; i <= n; i++) {
#include <iostream>
#include <cmath>
using namespace std;
int main() {
long double n;
cin >> n;
long double first_part = 0.0, second_part = 0.0, pi = 0.0;
for(int i = 0; i <= n; i++)
{
first_part += (pow(-1, n)) / ((2 * n + 1) * pow(5, 2 * n + 1));
second_part += (pow(-1, n)) / ((2 * n + 1) * pow(239, 2 * n + 1));
}
pi = (first_part * 16) - (second_part * 4);
cout << pi << endl;
return 0;
}
#包括
#包括
使用名称空间std;
int main(){
长双n;
cin>>n;
长双第一部分=0.0,第二部分=0.0,pi=0.0;
对于(int i=0;i您使用了错误的变量:
for(int i = 0; i <= n; i++)
^^^^^
iterating over 'i'
您已达到浮点精度的极限:
#include <cmath>
#include <iostream>
int main()
{
// This will print inf (infinite)
std::cout << std::pow(5.0, 600.0) << "\n"; // pow(5, 2 * n + 1))
return 0;
}
#包括
#包括
int main()
{
//这将打印inf(无限)
std::cout将for循环中的所有n
替换为i
:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
long double n;
cin >> n;
long double first_part = 0.0, second_part = 0.0, pi = 0.0;
for(int i = 0; i <= n; i++)
{
first_part += (pow(-1, i)) / ((2 * i + 1) * pow(5, 2 * i + 1));
second_part += (pow(-1, i)) / ((2 * i + 1) * pow(239, 2 * i + 1));
}
pi = (first_part * 16) - (second_part * 4);
cout << pi << endl;
return 0;
}
参考资料
#include <iostream>
#include <cmath>
using namespace std;
int main() {
long double n;
cin >> n;
long double first_part = 0.0, second_part = 0.0, pi = 0.0;
for(int i = 0; i <= n; i++)
{
first_part += (pow(-1, i)) / ((2 * i + 1) * pow(5, 2 * i + 1));
second_part += (pow(-1, i)) / ((2 * i + 1) * pow(239, 2 * i + 1));
}
pi = (first_part * 16) - (second_part * 4);
cout << pi << endl;
return 0;
}
1.7E +/- 308 (15 digits)