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