# 字符串 def func1(a, b): a = str(a) sum1 = 0 for i in range(1, b + 1): c = int(a * i) sum1 += c return sum1 print(func1(2, 5)) # 列表 def func1(a, b): a = str(a) c_list = [] for i in range(1, b + 1): c = int(a * i) c_list.append(c) return sum(c_list) print(func1(2, 5)) # 递归 def func1(x, y): sum1 = 0 for i in range(1, y + 1): def f(y): if y == 0: return 0 return x * 10 ** (y - 1) + f(y - 1) sum1 += f(y) y = y - 1 return sum1 print(func1(2, 5)) # 递归2 def fun2(a, b): if b == 1: return a else: return fun2(a, b - 1) + int(‘1‘ * b) * a print(fun2(2, 2))
这道题应该算是编程里比较经典的练习题了,静下心来,好好看看
.封装函数,实现如下功能,如:2,5,则求2 + 22 + 222 + 2222 + 22222,可以分别尝试用字符串,列表或者递归实现
原文:https://www.cnblogs.com/Rocknuo/p/13061435.html