题目描述:
给定两个均不超过9的正整数a和n,要求:编写函数fn(a,n), 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列之和。
函数接口定义:
def fn(a,n):
其中, a 和 n 都是传入的参数。 a 的值在[1, 9]
范围;n 是[1, 9]
区间内的个位数。函数返回数列之和。
裁判测试程序样例:
/* 请在这里填写答案 */
a,b=input().split()
s=fn(int(a),int(b))
print(s)
输入样例:
在这里给出一组输入。例如:
2 3
输出样例:
在这里给出相应的输出。例如:
246
我的答案:
这道题可以用python的特性来实现,即字符串可以相乘
方法一:
def fn(a,n):
total = 0
for i in range(1, n+1):
total += int(str(a)*i)
return total
解释一下,先将数字转化为字符串,然后字符串相乘,例如'2' * 2 = '22',然后再将字符串转化为数字就好了
方法二:
可以像传统方法那样,先算出这次的数字,再加到总数上去,但是这样就很繁琐,其他语言例如C++就只能这样干
def fn(a,n):
total = 0
part = a
for i in range(0, n):
total += part
part = part * 10 + a
return total
这里不要为了省事而直接对a进行操作,因为a的值会不断地改变,需要额外定义一个变量来进行相加操作