
为什么这样不能实现Sn求前n项和
想问下,改哪里才能实现求和?
关注此题看似简单,其实有坑,前n项之和,并不能以n为终点。比如前2项之和,是1和-3,而前4项之和是1,-3,5,-7,所以用for循环的话容易漏掉数字,而用while循环就很简单了。
n = int(input("输入一个整数n:"))
start = 0
Sn = 0
k = -1
while start<n:
k *= -1
Sn += (2*start+1)*k
start += 1
print(Sn)
当然,如果稍微心算一下,就能看出答案很容易得出,谜底就在谜面上。。。
n = int(input())
if n%2:
print(n)
else:
print(-n)