c語(yǔ)言實(shí)現(xiàn)計(jì)算圓周率的近似值
c語(yǔ)言計(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語(yǔ)言解“計(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
思路
本題看起來(lái)很難,其實(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++?Socket實(shí)現(xiàn)TCP與UDP網(wǎng)絡(luò)編程
本文主要介紹了C++?Socket實(shí)現(xiàn)TCP與UDP網(wǎng)絡(luò)編程,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
C++ 將一個(gè)文件讀入數(shù)組再讀出數(shù)組的方法
今天小編就為大家分享一篇C++ 將一個(gè)文件讀入數(shù)組再讀出數(shù)組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Cocos2d-x 3.x入門教程(一):基礎(chǔ)概念
這篇文章主要介紹了Cocos2d-x 3.x入門教程(一):基礎(chǔ)概念,本文講解了Director、Scene、Layer、Sprite等內(nèi)容,需要的朋友可以參考下2014-11-11
VSCode配置C/C++語(yǔ)言環(huán)境(2023最新版)
這篇文章主要介紹了VSCode配置C/C++語(yǔ)言環(huán)境(2023最新版)的全過(guò)程,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
C++ 實(shí)現(xiàn)的通訊錄管理系統(tǒng)詳解
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

