我编的代码
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()
为什么数据有偏差
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()