c語言實現(xiàn)計算圓周率的近似值
c語言計算圓周率的近似值
用公式π/4=1-1/3+1/5-1/7+1/9-…,求圓周率π的近似值,直到上述級數(shù)最后一項的絕對值小于10^(−4) 為止
#include<stdio.h>
int main(void)
{
float pi=0,t=1.0,n=1.0;
while(1/n>=1e-4)//精度可以縮小,但計算時間會增加
//建議不小于1e-6
{
pi=pi+t*1.0/n;
//第一次循環(huán):pi=0,pi=-1;
//t=-1;
//第二次循環(huán):pi=1-1/3;
//t=1;
//第三次循環(huán):pi=1-1/3+1/5;
//t=-1;
//第n次循環(huán):。。。
t=-1*t;
n+=2;
}
pi=pi*4;
printf("n=%f,pi=%f\n",n,pi);
} 
用C語言解“計算圓周率”題
根據(jù)下面關(guān)系式,求圓周率的值,直到最后一項的值小于給定閾值。
??π/2=1 + 1 / 3 + 2! / (?3×5) + 3! / (3×5×7) +?+ n! / (3×5×7×?×(2n+1)) +?
輸入格式:
輸入在一行中給出小于1的閾值。
輸出格式:
在一行中輸出滿足閾值條件的近似圓周率,輸出到小數(shù)點后6位。
輸入樣例:
0.01
輸出樣例:
3.132157
思路
本題看起來很難,其實并不是太難,只需將分子分母分開計算,得出結(jié)果后在相除即可得出原本的分?jǐn)?shù)值,進而再相加在加1則可算出π/2,在將結(jié)果除于2即可得出π的近似值
代碼
#include <stdio.h>
int main()
{
double a;
scanf("%lf",&a);
int i = 1;
double fen_zi=1, fen_mu=1;
double jie_guo=1, sum=0, s=0;
while(a < jie_guo){
fen_zi *= i;
fen_mu *= (2*i+1);
jie_guo = fen_zi / fen_mu;
sum += jie_guo;
i += 1;
}
s = (sum+1)*2;
printf("%.6f",s);
return 0;
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++面試八股文之STL標(biāo)準(zhǔn)模板庫使用詳解
這篇文章主要為大家介紹了C++面試八股文之STL標(biāo)準(zhǔn)模板庫使用詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06
利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖
這篇文章主要介紹了如何利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖的繪制,文中的示例代碼講解詳細,對我們學(xué)習(xí)Matlab有一定的幫助,感興趣的可以了解一下2022-05-05

