问题分析
本题是考验对循环、判断语句的使用。方法二的效率会提高些。
代码实现
#读入正整数n,求取pi的近似值,直到算到1/n或1/(n-1)。
#π/4≈1-1/3+1/5-1/7+1/9+…
import sys
n=int(input('请输入正整数n:'))
if n<=0:
print('你输入的不是正整数,程序退出')
sys.exit(0)
#方法一:
'''
s = 0
a = 0
for i in range(1,n+1,2):
s += 1 / i * (-1) ** a
a += 1
print('pi的近似值是', 4*s, sep='')
#'''
#方法二:本方法是要丢掉前面的项,每次只留两项,s.pop(i)移除列表中的第(i+1)个元素
s=0
flag=True
for i in range(1,n+1,2):
if flag:
s += 1 / i
flag = False
else:
s -= 1 / i
flag = True
print('pi的近似值是', 4*s, sep='')
运行结果如下:
版权声明:本文为weixin_44834325原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。