要求编写函数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))
我的思路跟常人不一样__
先用字符串‘1’乘以循环值,然后int转成整数,加到列表中,最后对列表求和,然后乘以个数n,当然,也可以先乘再加入列表。神不啦哈哈哈