1. 程式人生 > 其它 >第六屆藍橋杯大賽個人賽校內選拔Ca真題題解2 圓周率

第六屆藍橋杯大賽個人賽校內選拔Ca真題題解2 圓周率

技術標籤:藍橋杯C語言A組flag

題目:

歷史上有許多計算圓周率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=4
s();
printf("%.2f",pai);
return 0;
}
···