c++语言计算圆周率1000位
时间: 2023-08-01 13:06:40 浏览: 175
以下是使用 C++ 语言计算圆周率的代码,可以计算到 1000 位:
```c++
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
long double pi = 0.0;
long double numerator = 1.0;
int sign = 1;
for (int i = 0; i < 1000000; i++) {
pi += sign * 4.0 / numerator;
numerator += 2.0;
sign *= -1;
}
cout << setprecision(1000) << pi << endl;
return 0;
}
```
这个程序使用了一个循环来计算莱布尼茨级数,循环次数越多,计算结果越接近圆周率的真实值。在这个程序中,循环了1000000次,可以得到1000位的圆周率。
值得注意的是,为了避免精度丢失,我们使用了 `long double` 类型来存储计算结果。另外,使用 `setprecision()` 函数来设置输出精度。
相关问题
用c++编写计算圆周率程序
好的,以下是用 C 语言编写计算圆周率的程序:
#include <stdio.h>
int main()
{
int i, n;
double pi = 0.0;
printf("请输入圆周率的计算精度:");
scanf("%d", &n);
for(i = 0; i < n; i++)
{
pi += 4.0 / (2 * i + 1) * (i % 2 == 0 ? 1 : -1);
}
printf("圆周率的值为:%lf\n", pi);
return 0;
}
希望能对您有所帮助。
请写一个用概率计算圆周率的程序,用python语言,java语言,C++语言分别写一下,谢谢你
Python代码实现:
```python
import random
def estimate_pi(n):
num_point_circle = 0
num_point_total = 0
for _ in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
distance = x**2 + y**2
if distance <= 1:
num_point_circle += 1
num_point_total += 1
return 4 * num_point_circle / num_point_total
print(estimate_pi(10000))
```
Java代码实现:
```java
import java.util.Random;
public class EstimatePi {
public static double estimatePi(int n) {
int numPointCircle = 0;
int numPointTotal = 0;
Random rand = new Random();
for (int i = 0; i < n; i++) {
double x = rand.nextDouble();
double y = rand.nextDouble();
double distance = x * x + y * y;
if (distance <= 1) {
numPointCircle++;
}
numPointTotal++;
}
return 4.0 * numPointCircle / numPointTotal;
}
public static void main(String[] args) {
System.out.println(estimatePi(10000));
}
}
```
C++代码实现:
```c++
#include <iostream>
#include <random>
double estimate_pi(int n) {
int num_point_circle = 0;
int num_point_total = 0;
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_real_distribution<double> dis(0.0, 1.0);
for (int i = 0; i < n; i++) {
double x = dis(gen);
double y = dis(gen);
double distance = x * x + y * y;
if (distance <= 1) {
num_point_circle++;
}
num_point_total++;
}
return 4.0 * num_point_circle / num_point_total;
}
int main() {
std::cout << estimate_pi(10000) << std::endl;
return 0;
}
```
阅读全文