供参考:
#include<stdio.h>
int main()
{
int i = 0;
double pi = 0,tmp = 1.0;
while(tmp >= 1e-6)
{
tmp = 1.0/(i*2+1);
if(i % 2)
pi -= tmp;
else
pi += tmp;
i++;
}
printf("%.6f\n",pi * 4.0);
return 0;
}
n不是输入的,而是在判断某一项是否小于10的-6次方停止计算来结束
#include<stdio.h>
#include<math.h>
int main()
{
int i = 1;
double pi = 0,tmp = 1.0;
while(tmp >= 1e-6)
{
tmp = 1.0/(i*i);
if(tmp < 1e-6)
break;
pi += tmp;
i++;
}
printf("%.3f\n",sqrt(pi * 6.0));
return 0;
}
六分之π的平方那个,求解到最后一项小于10的-12次时,已经求出了π的近似值;
二分之π那个,经测试发现,n取较大的值,和π的值越接近。
测试代码如下:
参考链接:
#include <stdio.h>
#include <math.h>
int main(void){
double sum=0;
double single=1;
double n=1;
sum=0;
// https://bbs.csdn.net/topics/70257464
// https://blog.csdn.net/hankern/article/details/107722365
while(single>=1e-12){
sum+=single;
n+=1;
single = 1.0/(n*n);
}
// https://www.cnblogs.com/ybqjymy/p/12375824.html
printf("PI=%f\n",sqrt(sum*6));
double product=1;
n=1;
single = ((n+1)*(n+1))/(n*(n+2));
while(n<10000000){
product*=single;
n+=2;
single = ((n+1)*(n+1))/(n*(n+2));
}
printf("PI=%f\n",product*2);
return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
int n;
scanf("%d", &n);
float sum = 0, pi;
for (int i = 1; i <= n; i++)
sum += 1 / (i * i);
pi = pow(sum * 6, 0.5);
printf("%f", pi);
return(0);
}
— 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。最大公约数作为数学中常见的数学概念,在c语言中也可以用多种办法来求解。不同的办法理解难度和时间复杂度均不同。
以下我来介绍几种求最大公约数的方法: