python编写一个函数mySum(a,n),求以下n项式的和:s=a+aa+aaa+……+aa…a,其中a是1~9的数字,最后一项是n位都是a的数字。输入a和n的值,输出s
时间: 2024-03-21 13:38:04 浏览: 48
计算机Python免费学习第五周作业.pptx
可以使用字符串拼接的方法来生成每一项,然后将每一项的值累加起来。具体实现如下:
```python
def mySum(a, n):
s = 0
term = ''
for i in range(1, n+1):
term += str(a) # 将 a 拼接到当前项的字符串末尾
s += int(term) # 将当前项的值累加到总和中
return s
```
例如,如果要求 1 + 11 + 111 + 1111 + 11111,则可以这样调用函数:
```python
s = mySum(1, 5)
print(s) # 输出 12345
```
如果要求 2 + 22 + 222 + ... + 222222222,则可以这样调用函数:
```python
s = mySum(2, 9)
print(s) # 输出 246913580
```
注意,当 $n$ 很大时,字符串拼接可能会变得很慢,可以考虑使用乘方和等比数列求和的方法来优化算法。
阅读全文