【藍橋杯JavaB組真題詳解】圓周率(2014)
阿新 • • 發佈:2021-01-29
技術標籤:藍橋杯JavaB組真題詳解資料結構演算法程式語言java
題目描述
圓周率
數學發展歷史上,圓周率的計算曾有許多有趣甚至是**的故事。其中許多方法都涉及無窮級數。
圖1.png中所示,就是一種用連分數的形式表示的圓周率求法。
下面的程式實現了該求解方法。實際上數列的收斂對x的初始值 並不敏感。
結果打印出圓周率近似值(保留小數點後4位,並不一定與圓周率真值吻合)。
double x = 111;
for(int n = 10000; n>=0; n--){
int i = 2 * n + 1;
x = 2 + (i*i / x);
}
System.out.println(String.format("%.4f", ______________));
解題思路
首先要分析程式碼中最重要的部分 for迴圈
n從10000開始不斷遞減
x = 2+20001 *20001 / 111
然後x = 2+19999 19999/x
最後為 x = 2+11/x;
即x最後是圖中這個部分
我們得到的結果跟圖中公式做對比
可以發現 我們得到的x是比這一部分多1
那麼這一部分可以用x-1表示
將這個部分看作x,便是很簡單的一個方程
4/兀 =x-1
解方程即可得到答案
參考程式碼
4 / (x - 1)
(友情提示:答題時不要加多餘“;”!!!)
新手創作學習,有錯誤歡迎指點,謝謝!