python 求1+12+123+1234+……的前n项和

python 求1+12+123+1234+……的前n项和(方法简单点)

s = 0 
t = ''  
for i in range(1, n + 1):
    t += str(i)
    s += int(t)
print(s)

数学方法,递归函数求解

第n次的值就等于n-1次的值加上1234..n这个值。
所有我先构建一个生成1、12、123、1234、1234...n这个函数

def func(n):
    result = 0
    for i in range(1, n + 1):
        tem = i * 10 ** (n - i)
        result += tem
    return result

最后再构建一个递归函数来求和。

def func(n):
    result = 0
    for i in range(1, n + 1):
        tem = i * 10 ** (n - i)
        result += tem
    return result


def func_sum(n):
    if n == 1:
        return 1
    else:
        return func_sum(n - 1) + func(n)

print(func_sum(5)) # 结果为:13715