题目:
历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:
pai = 4*(1-1/3+1/5-1/7 …)
这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:
累积了1项和是:4.00
累积了2项和是:2.67
累积了3项和是:3.47
。。。
请你写出它累积了100项的和是多少(四舍五入到小数后两位)。
注意:只填写该小数本身,不要填写任何多余的说明或解释文字。
···
#include <stdio.h>
#include <stdlib.h>
int main()
{
double sum=0.0;
int n=1;
double sum1=0,sum2=0,a;
while(n<=100){
if(n%2!=0){
a=1.0/(2*n-1);
sum1=sum1+a;
}
else{
a=1.0/(2*n-1);
sum2=sum2+a;
}
n++;
}
sum=4*(sum1-sum2);
printf("%.2f",sum);
}
···
答案:3.13
也可以设置flag值
···
#include<stdio.h>
double s(){
double sum=0;
int flag=1;
int n;
for(n=1;n<=100;n++){
double a=1.0/(2*n-1)flag;
sum=sum+a;
flag=-flag;
}
return sum;
}
int main(){
double pai=0.0;
pai=4s();
printf("%.2f",pai);
return 0;
}
···