c語言圓周率計算法?圓周率,大家都不陌生吧,也就是“Pi”,用符号π來表示,一般就是數字3.14159265...,今天小編就來聊一聊關于c語言圓周率計算法?接下來我們就一起去研究一下吧!
c語言圓周率計算法
圓周率,大家都不陌生吧,也就是“Pi”,用符号π來表示,一般就是數字3.14159265...
那這道編程題呢,相對于之前學過的編程題目而言,難度有所提升。
主要目的就是如文章标題寫的那樣,要計算圓周率。
沒錯,圓周率是可以計算出來的。
打出公式比較複雜,我直接把題目給貼上來好了。
梳理邏輯這道題目的要求是什麼,是輸入小于1的阈值,然後在一行中輸出滿足阈值條件的近似圓周率,輸出小數點後6位,而近似圓周率滿足公式中的最後一項的值要小于給定的阈值。
比方說給定阈值0.01,那麼計算圓周率的最後一項如果小于0.01,就到此為止,然後把該圓周率的值給打印出來。
1、輸入小于1的阈值,那顯然是要用到float浮點型來表示輸入阈值的數據類型了。
2、關鍵難度在于如何得到最後一項,以及如何得到pi的值。
我們可以仔細觀察,最後一項其實是由n的階乘去除以所有奇數的乘積。
n的階乘我之前講過,就是從第一個數開始乘起乘到最後一個數。
而所有奇數的乘積也相對簡單,就是從第一個奇數開始乘起乘到最後一個奇數。
3、保留小數點後六位,那就是要用到%0.6f來表示了。
代碼實現
//計算圓周率
#include<stdio.h>
int main(){
float n;
float m=1;//n!
float q=1;
float pi=1;
float w=0;
scanf("%f", &n);//阈值
int i = 1;
for(w = 1; w >= n;i ){
q = q*(2*i 1);
m = m*i;
w = m/q;
pi = pi w;
}
printf("%0.6f",2*pi);
}
可以發現,這裡隻需要用到一個for循環即可,至于求n的階乘與所有奇數的乘積,相對來說也是比較簡單的,就是用數值本身去乘以相應的公式即可。
結果測試總結總的來說,這道題目并沒有想象中的那麼難,關鍵還是題目的邏輯要盤清楚,否則就會像我最開始做題時犯的錯誤一樣,容易出現問題。