求类似2+22+222+2222+22222的和
猫在大神旁的小C
2019年12月19日 14:11
收录于文集
共8篇

# 控制台 输入要扩展的数字 如:2 var1 = int(input("请输入1-9中的一个数&#​34;)) # 输入扩展到最大的位数 如:5 var2 = int(input("请输入一个正整数&#​34;)) # 统计求和 sum1 = 2 + 22 + 222 + 2222 + 22222 sum1 = 0 # 用变量存储: 5 b = var2 # range(1,5+1),如何计算出2,22,222,2222,22222 for a in range(1,b+1):    # 先把5传递到函数f中    def f(var2):            ·# 判断特殊情况,如果是0就算了,不管多少0相加,都为0           if var2 == 0:                    return 0            "&#​34;"                    解析var1*10**(var2-1) + f(var2-1)                    var1 = 2, var2 = 5                    2*10**4 + 2*10**3 +2*10**2 + 2 * 10**1 + 2 * 10**0 = 22222                    var1 = 2, var2 = 4                    2*10**3 +2*10**2 + 2 * 10**1 + 2 * 10**0 = 2222                    var1 = 2, var2 = 3                    2*10**3 +2*10**2 + 2 * 10**1 + 2 * 10**0 = 222                     var1 = 2, var2 = 2                    2 * 10**1 + 2 * 10**0 = 22                    var1 = 2, var2 = 1                    2 * 10**0 = 2            "&#​34;"            return var1*10**(var2-1) + f(var2-1)        # 求var2: 5,4,3,2,1 不同时段值总和        sum1 += f(var2)        # var2: 5,4,3,2,1        var2 = var2-1 print(sum1)

结果展示:

result