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語言解“計算圓周率”題
根據下面關系式,求圓周率的值,直到最后一項的值小于給定閾值。
??π/2=1 + 1 / 3 + 2! / (?3×5) + 3! / (3×5×7) +?+ n! / (3×5×7×?×(2n+1)) +?
輸入格式:
輸入在一行中給出小于1的閾值。
輸出格式:
在一行中輸出滿足閾值條件的近似圓周率,輸出到小數(shù)點后6位。
輸入樣例:
0.01
輸出樣例:
3.132157
思路
本題看起來很難,其實并不是太難,只需將分子分母分開計算,得出結果后在相除即可得出原本的分數(shù)值,進而再相加在加1則可算出π/2,在將結果除于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; }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖
這篇文章主要介紹了如何利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖的繪制,文中的示例代碼講解詳細,對我們學習Matlab有一定的幫助,感興趣的可以了解一下2022-05-05