首页 > 其他 > 详细

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

时间:2020-06-07 18:47:46      阅读:65      评论:0      收藏:0      [点我收藏+]
# 字符串
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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!