函数封装1.1封装函数实现如下要求,例如:输入2,5,则求:2 + 22+222 + 2222+22222的和

封装函数实现如下要求

例如:输入2,5

则求:2 + 22+222 + 2222+22222的和

方法一:循环中递归调用

x = int(input("请输入1-9中的一个数"))
y = int(input("请输入一个正整数"))
sum1 = 0
b = y
for a in range(1,b+1):
    def f(y):
        if y == 0:
            return 0
        return x*10**(y-1) + f(y-1)
    sum1 += f(y)
    y = y-1
print(sum1)

结果输出:

请输入1-9中的一个数2
请输入一个正整数5
24690

Process finished with exit code 0

方法二:使用装饰器封装

a = int(input("请输入1-9中的一个数"))
b = int(input("请输入一个正整数"))
def f1(f):
    def f2(x,y):
        Str = ""
        for i in range(1,y+1):
            Str += str(x)*i
            if i == y:
                Str += "="
            else:
                Str += "+"
        Sum = 0
        for j in range(1,y+1):
            Sum += int(str(x)*j)
        return f(Str,Sum)
    return f2
@f1
def f(a,b):
    print(a,b)
f(a,b)

结果输出:

请输入1-9中的一个数2
请输入一个正整数5
2+22+222+2222+22222= 24690

Process finished with exit code 0

猜你喜欢

转载自www.cnblogs.com/hrv5/p/11991420.html
今日推荐