1. . 求 Sn=a+aa+aaa+…+aa…a 之 值 , 其 中 a 是 一 个 数 字 。 例 如 : 2+22+222+2222+22222(此时 n=5) , n 由键盘输入。
时间: 2023-08-13 20:08:20 浏览: 93
求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值
这道题可以用数学归纳法来解决。
首先,我们可以发现 $a+aa+aaa+\cdots+aa\cdots a$ 中,每一项的系数都是 $a$。因此,我们可以把每一项都提取出 $a$,得到:
$$
a(1+11+111+\cdots+\underbrace{111\cdots1}_{n\text{个}1})
$$
接下来,我们考虑如何求和括号中的那个等比数列 $1, 11, 111, \cdots, \underbrace{111\cdots1}_{n\text{个}1}$。我们可以把它们写成等比数列的形式:
$$
\begin{aligned}
&1 = 1\times 10^0 \\
&11 = 1\times 10^1 + 1\times 10^0 \\
&111 = 1\times 10^2 + 1\times 10^1 + 1\times 10^0 \\
&\cdots \\
&\underbrace{111\cdots1}_{n\text{个}1} = 1\times 10^{n-1} + 1\times 10^{n-2} + \cdots + 1\times 10^1 + 1\times 10^0 \\
\end{aligned}
$$
然后我们把这些等式相加,得到:
$$
\begin{aligned}
&1 + 11 + 111 + \cdots + \underbrace{111\cdots1}_{n\text{个}1} \\
=& (1\times 10^0) + (1\times 10^1 + 1\times 10^0) + (1\times 10^2 + 1\times 10^1 + 1\times 10^0) + \cdots + (1\times 10^{n-1} + 1\times 10^{n-2} + \cdots + 1\times 10^1 + 1\times 10^0) \\
=& 1\times (10^0+10^1+10^2+\cdots+10^{n-1}) + 1\times (10^0+10^1+10^2+\cdots+10^{n-2}) + \cdots + 1\times (10^0) \\
=& \frac{10^n-1}{9} + \frac{10^{n-1}-1}{9} + \cdots + \frac{10^1-1}{9} + \frac{10^0-1}{9} \\
=& \frac{10^n-1+10^{n-1}-1+\cdots+10^1-1+10^0-1}{9} \\
=& \frac{10^n-1}{9} + \frac{10^{n-1}-1}{9} + \cdots + \frac{10^1-1}{9} + \frac{10^0-1}{9} - \frac{n}{9} \\
=& \frac{10^n-1+10^{n-1}-1+\cdots+10^1-1+10^0-1-n}{9} \\
\end{aligned}
$$
最后一步是把 $n$ 个 $\frac{10^i-1}{9}$ 相加,然后减去 $n$。
因此,原式可以写成:
$$
\begin{aligned}
Sn =& a(1+11+111+\cdots+\underbrace{111\cdots1}_{n\text{个}1}) \\
=& a\cdot \frac{10^n-1+10^{n-1}-1+\cdots+10^1-1+10^0-1-n}{9} \\
=& a\cdot \frac{10^n-1}{9} - \frac{an}{9}
\end{aligned}
$$
因此,原问题转化为求 $\frac{10^n-1}{9}$ 和 $an$。这两个值都可以用简单的数学运算求出来,最后再相加即可。
下面是 Python 代码实现:
```python
a = int(input("请输入 a 的值:"))
n = int(input("请输入 n 的值:"))
sum1 = (10**n-1) // 9 # 等比数列的和
sum2 = a * n # 每一项的系数都是 a,因此等差数列的和就是 a*n
Sn = sum1 * a - sum2
print("Sn 的值为:", Sn)
```
阅读全文