此程序可以计算圆周率到小数点后十七位,可以自选精度(建议将精度设置为7位及以下),否则程序运行时间变得很长很长......
#include<stdio.h>
#include<math.h>
#include<time.h>
int main()
{
clock_t start, finish;
double duration;
long double quarterPi = 0;
long double flag = 1;
long double i;
int ac;
printf("精确到小数点后多少位(1~17):");
scanf("%d", &ac);
start = clock();
for(i = 1; i < pow(10, ac + 1); i += 2)
{
quarterPi += (1 / i) * flag;
flag = -flag;
}
finish = clock();
printf("π = %.18lf\n", 4 * quarterPi);
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf("This program ran for %.2f s.", duration);
return 0;
}
以下是原理: