有谁会python的题吗?拜托拜托

要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和。从控制台输入正整数a和n的值(两个值都不超过9),并输出fn(a,n)的结果值。大佬能给我讲讲思路和代码吗?

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

def fn(a,n):
    s = 0
    d = 0
    for i in range(n):
        d = d*10+a
        s += d
    return s
p = input("输入 a n:").strip().split(" ")
a = int(p[0])
n = int(p[1])
print(fn(a,n))


思路是:设置一个d 初始为 0,循环n次,每次d都是先乘以10再加上a。
乘以10 的作用是把之前的值向高位移一位,留出个位好加上a的值。
比如a是8,
第一次循环 d*10+8 等于 8
第二次循环 8*10+8 等于 88
第三次循环 88*10+8 等于 888
把每次的结果都累加到s中即可

直接求解,只是要在str和int之间切换即可,inta就是不断叠加的a..a.
def fn(a,n):
inta=a
sum=int(a)
for i in range(int(n)-1):
inta=str(inta)+str(a)
sum=int(inta)+sum
return sum
p = input("输入 a n:").strip().split(" ")
a = p[0]
n = p[1]
print(fn(a,n))

我的思路跟常人不一样__

img

先用字符串‘1’乘以循环值,然后int转成整数,加到列表中,最后对列表求和,然后乘以个数n,当然,也可以先乘再加入列表。神不啦哈哈哈