小明爷爷喂 2022-10-05 20:57 采纳率: 76%
浏览 957

实现Sn=1-3+5-7+…求前n项和

img

为什么这样不能实现Sn求前n项和
想问下,改哪里才能实现求和?

  • 写回答

3条回答 默认 最新

  • 请叫我问哥 新星创作者: python技术领域 2022-10-05 22:35
    关注

    此题看似简单,其实有坑,前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)
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月5日