公式计算π
【問題描述】
已知可以用下列公式計算π的近似值。給定一個π的近似值e,編程利用下列公式求得最接近e的近似值π,以及迭代次數n(大于等于1)。
π/2 = (2/1 x 2/3) x (4/3 x 4/5) x (6/5 x 6/7) x … x [2n/(2n-1)x2n/(2n+1)]
【輸入形式】
從控制臺輸入e( e大于2.6666667,小于3.14159)的值。
【輸出形式】
輸出最接近e的近似值π,以及迭代次數n(以一個空格分隔,并且輸出π時要求小數點后保留9位有效數字)。
【樣例輸入1】
3.1201
【樣例輸出1】
3.120149087 36
【樣例1說明】
輸入的π的近似值e為3.1201,當n為35時計算的π值為3.119547206,與給定e值之差的絕對值為0.000552794。當n為36時,計算的π值為3.120149087,與給定e值之差的絕對值為0.000049087,可以看出n為36時比n為35時求得的π值更接近給定的e值。并且n為36時求得的π值已經大于給定的e值,當n繼續增大時,求得的π值將遞增,所以利用上述計算公式求得的最接近e的近似值為3.120149087,對應的迭代次數為36。
【樣例輸入2】
3.11955
【樣例輸出2】
3.119547206 35
【樣例2說明】
輸入的π的近似值e為3.11955,當n為35時計算的π值為3.119547206,與給定e值之差的絕對值為0.000002794。當n為36時,計算的π值為3.120149087,與給定e值之差的絕對值為0.000599087,可以看出n為35時比n為36時求得的π值更接近給定的e值。并且n為36時求得的π值已經大于給定的e值,當n繼續增大時,求得的π值將遞增,所以利用上述計算公式求得的最接近e的近似值為3.119547206,對應的迭代次數為35。
注意:
為保證計算精度,請使用double數據類型保存計算數據。
【評分標準】
該題要求輸出π的近似值和迭代次數。
e = float(input()) pi = float(4/3) for i in range (2,65535):x = float((2*i/(2*i-1))*(2*i/(2*i+1)))pi *= xif pi*2 > e:if abs(pi*2-e) > abs((pi/x)*2-e):print ('{0:.9f}'.format((pi/x)*2),i-1)breakelse:print ('{0:.9f}'.format(pi*2),i)break總結
- 上一篇: Cadence Allegro输出钻孔信
- 下一篇: 【工具】批量修改文件名