def m(n):
sum=0
for i in range(1,2*n,1):
sum=sum+((-1)**(i+1))*1/(2*i-1)
return sum
def main():
i=int(input())
print("%.4f"%(4*m(i)))
main()
为什么数据有偏差
因为range创建的是左闭右开的数组,所以你需要用 range(1,n+1)才可以创建足够多的项
def m(n):
sum=0
for i in range(1,n+1):
sum += ( (-1)**(i+1) ) / (2*i-1)
return sum
def main():
i=int(input())
print("%.4f"%(4*m(i)))
main()
题目告诉你项数是n
你应该写range(1,n+1)啊
2*n是哪冒出来的
另,根据题意,函数m是计算π的,你应该return 4*sum,而不是把4放到函数外面乘
def m(n):
sum=0
for i in range(1,n + 1):
sum=sum+((-1)**(i+1))*1/(2*i-1)
return sum
def main():
i=int(input())
print("%.4f"%(4*m(i)))
main()
--result
901
3.1427