公式计算π
【問題描述】
已知可以用下列公式計(jì)算π的近似值。給定一個(gè)π的近似值e,編程利用下列公式求得最接近e的近似值π,以及迭代次數(shù)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)]
【輸入形式】
從控制臺(tái)輸入e( e大于2.6666667,小于3.14159)的值。
【輸出形式】
輸出最接近e的近似值π,以及迭代次數(shù)n(以一個(gè)空格分隔,并且輸出π時(shí)要求小數(shù)點(diǎn)后保留9位有效數(shù)字)。
【樣例輸入1】
3.1201
【樣例輸出1】
3.120149087 36
【樣例1說明】
輸入的π的近似值e為3.1201,當(dāng)n為35時(shí)計(jì)算的π值為3.119547206,與給定e值之差的絕對(duì)值為0.000552794。當(dāng)n為36時(shí),計(jì)算的π值為3.120149087,與給定e值之差的絕對(duì)值為0.000049087,可以看出n為36時(shí)比n為35時(shí)求得的π值更接近給定的e值。并且n為36時(shí)求得的π值已經(jīng)大于給定的e值,當(dāng)n繼續(xù)增大時(shí),求得的π值將遞增,所以利用上述計(jì)算公式求得的最接近e的近似值為3.120149087,對(duì)應(yīng)的迭代次數(shù)為36。
【樣例輸入2】
3.11955
【樣例輸出2】
3.119547206 35
【樣例2說明】
輸入的π的近似值e為3.11955,當(dāng)n為35時(shí)計(jì)算的π值為3.119547206,與給定e值之差的絕對(duì)值為0.000002794。當(dāng)n為36時(shí),計(jì)算的π值為3.120149087,與給定e值之差的絕對(duì)值為0.000599087,可以看出n為35時(shí)比n為36時(shí)求得的π值更接近給定的e值。并且n為36時(shí)求得的π值已經(jīng)大于給定的e值,當(dāng)n繼續(xù)增大時(shí),求得的π值將遞增,所以利用上述計(jì)算公式求得的最接近e的近似值為3.119547206,對(duì)應(yīng)的迭代次數(shù)為35。
注意:
為保證計(jì)算精度,請(qǐng)使用double數(shù)據(jù)類型保存計(jì)算數(shù)據(jù)。
【評(píng)分標(biāo)準(zhǔn)】
該題要求輸出π的近似值和迭代次數(shù)。
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總結(jié)
- 上一篇: Cadence Allegro输出钻孔信
- 下一篇: python批量更改word文件名_py