描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    给定某数字A(1≤A≤9)以及非负整数N,求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,sum=1+11+111=123。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输入格式
    第一行输入一个整数A,且该数介于1至9之间(包含1和9)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    第二行输入一个非负整数N‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输出格式
    输出其N项数列之和sum的值。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    当输入不符合要求时输出:’data error’

    这是一个前n项累加的问题,一个循环就可以解决,难点是通项的构建,需要注意的是输入数值的区间限制和运算中的数值类型转换。有这样几种实现方法:

    1. 数学方法:后一项是前一项乘10再加上次一项 tmp = tmp * 10 + A


    1. A = int(input())
    2. num = int(input())
    3. SumOfn = 0
    4. if 1 <= A <= 9 and num >= 0:
    5. tmp = A
    6. for i in range(num):
    7. SumOfn = SumOfn + tmp
    8. tmp = tmp * 10 + A
    9. print(SumOfn)
    10. else:
    11. print('data error')
    1. 字符串方法:第 i 项为字符 A 乘 i , A * i 便为第 i 项,将其取整后累加便可。
    1. A = input()
    2. num = int(input())
    3. SumOfn = 0
    4. if 1 <= int(A) <= 9 and num >= 0:
    5. for i in range(1,num + 1):
    6. SumOfn = SumOfn + int(A * i)
    7. print(SumOfn)
    8. else:
    9. print('data error')
    1. 用列表推导式实现
    1. A,num = input(),int(input())
    2. if 1 <= int(A) <= 9 and num >= 0:
    3. print(sum([int(A * i) for i in range(1,num + 1)]))
    4. else:
    5. print('data error')
    1. 结合条件表达式:
    1. A,num = input(),int(input())
    2. print(sum([int(A * i) for i in range(1,num + 1)])) if 1 <= int(A) <= 9 and num >= 0 else print('data error')