代码如下:
/*
求π的近似值
update 2020/1/17 16:04
*/
#include<stdio.h>
double fun(double degree) {
double num = 1, den = 1;// 分子和分母
// 注:这里如果是int num = 1的话会导致输出精度不够,所以应该改成double
double fra = 0;// 分数
double res = 1;// 算式结果
double i = 1, j = 3;// i和j控制分子和分母乘数的变化
// 注:这里如果是int i = 1的话会导致输出精度不够,所以应该改成double
while (1) {
num *= i;
den *= j;
fra = (double)num / (double)den;
if (fra < degree) {
break;
}
res += fra;
i++;
j += 2;
}
return res * 2;
}
int main() {
printf("%lf\n", fun(0.0005));
return 0;
}