.封装函数,实现如下功能,如:2,5,则求2 + 22 + 222 + 2222 + 22222,可以分别尝试用字符串,列表或者递归实现

时间:2020-06-07 18:47:46   收藏:0   阅读:71
# 字符串
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))

这道题应该算是编程里比较经典的练习题了,静下心来,好好看看

原文:https://www.cnblogs.com/Rocknuo/p/13061435.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!