7-15 計算圓周率 (15 分) 基礎編程題目集(C語言)

基礎編程題目集

 

返回

7-15 計算圓周率 (15 分)

根據下面關係式,求圓周率的值,直到最後一項的值小於給定閾值。

​2​​π​​=1+​3​​1​​+​3×5​​2!​​+​3×5×7​​3!​​+⋯+​3×5×7×⋯×(2n+1)​​n!​​+⋯

輸入格式:

輸入在一行中給出小於1的閾值。

輸出格式:

在一行中輸出滿足閾值條件的近似圓周率,輸出到小數點後6位。

輸入樣例:

0.01

輸出樣例:

3.132157
//7-15 計算圓周率 (15 分)
//
//根據下面關係式,求圓周率的值,直到最後一項的值小於給定閾值。
//
//​2​​π​​=1+​3​​1​​+​3×5​​2!​​+​3×5×7​​3!​​+⋯+​3×5×7×⋯×(2n+1)​​n!​​+⋯
//輸入格式:
//
//輸入在一行中給出小於1的閾值。
//輸出格式:
//
//在一行中輸出滿足閾值條件的近似圓周率,輸出到小數點後6位。
//輸入樣例:
//
//0.01
//
//輸出樣例:
//
//3.132157
//
#include<stdio.h>

int main(void) {
    int i = 1;
    float up = 1.0f;
    float down = 1.0f;
    float sum = 1.0f;//右邊式子第一項爲1,在此直接處理
    float threshold;
    scanf("%f", &threshold);//輸入閾值
    do {
        up *= i;//分子
        down *= (2.0 * i + 1.0);//分母(奇數相乘,從1*3開始)
        i++;
        sum += (up / down);//每一項的和累加

    } while (up / down >= threshold);//如果當前項小於閾值,退出循環
    printf("%.6f", 2.0 * sum);//最後不要忘記乘以2
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章