解法1:
#include <stdio.h>
#include <math.h>
double get_pi(int n)
{
double total = 0.0;
int i;
for(i = 1; i < n + 1; i++)
{
total = total + 4.0 * pow(-1, i + 1) / (2.0 * i - 1.0);
}
return total;
}
int main()
{
int n;
for(n = 1; n < 1000; n++)
{
printf("pi%d\t%.15f\n", n, get_pi(n));
}
return 0;
}
解法2:
#include <stdio.h>
double get_pi(int n)
{
double total = 0.0;
int flag = 1;
int i;
for(i = 0; i < n; i++)
{
total += flag * 1.0 / (2 * i + 1);
flag = -flag;
}
return 4 * total;
}
int main ()
{
printf("%.15f\n", get_pi(10000));
printf("%.15f\n", get_pi(100000));
printf("%.15f\n", get_pi(1000000));
printf("%.15f\n", get_pi(10000000));
return 0;
}