c语言计算圆周率100000位
时间: 2023-10-26 15:14:08 浏览: 144
计算圆周率100000位需要更高的精度,可以使用多精度库来实现。以下是使用 GMP(GNU多精度数学库)计算圆周率100000位的 C 语言代码:
```c
#include <stdio.h>
#include <gmp.h>
int main()
{
mpf_set_default_prec(1000000); // 设置精度为 1000000 位
mpf_t pi, numerator, temp;
mpf_init_set_ui(pi, 0);
mpf_init_set_ui(numerator, 1);
mpf_init(temp);
int sign = 1;
for (int i = 0; i < 5000000; i++) {
mpf_div_ui(temp, mpf_get_ui(4), mpf_get_ui(numerator));
mpf_mul_si(temp, temp, sign);
mpf_add(pi, pi, temp);
mpf_add_ui(numerator, numerator, 2);
sign *= -1;
}
gmp_printf("%.1000000Ff", pi);
mpf_clear(pi);
mpf_clear(numerator);
mpf_clear(temp);
return 0;
}
```
这个程序使用了 GMP 多精度库来计算圆周率,精度设置为 1000000 位。循环了5000000次,可以得到100000位的圆周率。在循环中,我们使用了 `mpf_t` 类型的变量,这是 GMP 库中提供的多精度浮点数类型。使用 `gmp_printf()` 函数来输出结果。
需要注意的是,GMP库需要单独安装,并且需要链接 `-lgmp` 库。
阅读全文