为什么这样不能实现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)
1.应该是range(1,n+1)
2.应该是 i % 2 == 0不是 %4
整体改成:
n=int(input(请输入整数n:"))
x=0
Sn=0
for i in range(1,n+1)
if i%2==0:
x = -i
if i % 2!=0:
x=i
Sn=Sn+x
print(Sn)
n = int(input("输入一个整数n:"))
k=-1
sum=0
for i in range(1,n+1,2):
k=k*-1
sum+=(k*i)
print("sum =",sum)