请问我的逻辑哪里错了呀,输出的答案不对诶

img


大佬们球球了

for 循环变量要用i等,不要用和n相同的:

n = int(input())
m=-1
s=0
flag=-1

for i in range(1,n+1):
    flag *= -1
    m += 2
    s += flag*i/m

print('%.3f'%s)

还有,观察m,flag的变化,可以省掉不必要的变量
相当于累加:(-1)的几次方*整数列/奇数列

n = int(input())

s=0
for i in range(1,n+1):
    s += (-1)**(i+1)*i/(2*i-1)

print('%.3f'%s)