所有数字的总和

tra*_*req 9 python

我需要编写一个函数来计算所有数字n的总和.

Row 1:          1 
Row 2:         2 3 
Row 3:        4 5 6 
Row 4:       7 8 9 10 
Row 5:     11 12 13 14 15 
Row 6:   16 17 18 19 20 21 
Run Code Online (Sandbox Code Playgroud)

将上述行想象为"数字三角形"有助于此.该函数应采用数字n,表示要使用的数字和数量.第5行的总和是65.如何让我的函数对任何n值进行计算?

为清楚起见,这不是功课.这是在最近的一个中期,不用说,我很难过.

mgi*_*son 14

第5列中最左边的数字11 = (4+3+2+1)+1sum(range(5))+1.这通常适用于任何人n.

所以:

def triangle_sum(n):
    start = sum(range(n))+1
    return sum(range(start,start+n))
Run Code Online (Sandbox Code Playgroud)

正如一群人所指出的那样,你可以通过sum(range(n))分析表达,n*(n-1)//2因为这可以通过以下方式更优雅地完成:

def triangle_sum(n):
    start = n*(n-1)//2+1
    return sum(range(start,start+n))
Run Code Online (Sandbox Code Playgroud)