c語言實(shí)現(xiàn)計(jì)算圓周率的近似值
c語言計(jì)算圓周率的近似值
用公式π/4=1-1/3+1/5-1/7+1/9-…,求圓周率π的近似值,直到上述級(jí)數(shù)最后一項(xiàng)的絕對(duì)值小于10^(−4) 為止
#include<stdio.h> int main(void) { float pi=0,t=1.0,n=1.0; while(1/n>=1e-4)//精度可以縮小,但計(jì)算時(shí)間會(huì)增加 //建議不小于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ì)算圓周率”題
根據(jù)下面關(guān)系式,求圓周率的值,直到最后一項(xiàng)的值小于給定閾值。
??π/2=1 + 1 / 3 + 2! / (?3×5) + 3! / (3×5×7) +?+ n! / (3×5×7×?×(2n+1)) +?
輸入格式:
輸入在一行中給出小于1的閾值。
輸出格式:
在一行中輸出滿足閾值條件的近似圓周率,輸出到小數(shù)點(diǎn)后6位。
輸入樣例:
0.01
輸出樣例:
3.132157
思路
本題看起來很難,其實(shí)并不是太難,只需將分子分母分開計(jì)算,得出結(jié)果后在相除即可得出原本的分?jǐn)?shù)值,進(jìn)而再相加在加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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++超詳細(xì)講解函數(shù)參數(shù)的默認(rèn)值
在C++中,定義函數(shù)時(shí)可以給形參指定一個(gè)默認(rèn)的值,這樣調(diào)用函數(shù)時(shí)如果沒有給這個(gè)形參賦值(沒有對(duì)應(yīng)的實(shí)參),那么就使用這個(gè)默認(rèn)的值。也就是說,調(diào)用函數(shù)時(shí)可以省略有默認(rèn)值的參數(shù)2022-05-05C++面試八股文之STL標(biāo)準(zhǔn)模板庫使用詳解
這篇文章主要為大家介紹了C++面試八股文之STL標(biāo)準(zhǔn)模板庫使用詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06C語言實(shí)現(xiàn)動(dòng)態(tài)版通訊錄的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)一個(gè)簡單的動(dòng)態(tài)版通訊錄,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下2022-08-08VC實(shí)現(xiàn)Windows多顯示器編程的方法
這篇文章主要介紹了VC實(shí)現(xiàn)Windows多顯示器編程的方法,涉及VC獲取屏幕分辨率及顯示參數(shù)等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10利用Matlab實(shí)現(xiàn)圖像亮度分布統(tǒng)計(jì)圖
這篇文章主要介紹了如何利用Matlab實(shí)現(xiàn)圖像亮度分布統(tǒng)計(jì)圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定的幫助,感興趣的可以了解一下2022-05-05