求s=1+12+123+1234+12...n 的值,其中n的值由键盘输入
时间: 2023-12-22 16:05:37 浏览: 157
C语言输入输出函数公开课获奖课件.pptx
根据题目所给的数列,可以发现数列的前半部分是一个等差数列,后半部分是一个重复的等差数列,因此可以分别计算前半部分和后半部分的和,然后将它们相加即可得到整个数列的和。
前半部分的和可以用等差数列求和公式计算:
$$
\begin{aligned}
S_1 &= 1 + 12 + 123 + \cdots + (n-1)n \\
&= \frac{n(n+1)(n+2)}{6} - \frac{n(n+1)}{2} + n \\
&= \frac{n(n^2+5n+6)}{6}
\end{aligned}
$$
后半部分的和可以用等差数列求和公式计算,但需要注意的是,后半部分的公差为 $-10$,因此需要将公式中的公差换成 $-10$:
$$
\begin{aligned}
S_2 &= 12 + 34 + 56 + \cdots + (2n-2) \\
&= \frac{(2n-2+12)(n-1)}{2} \\
&= 5n^2 - 21n + 18
\end{aligned}
$$
将 $S_1$ 和 $S_2$ 相加即可得到整个数列的和:
$$
s = S_1 + S_2 = \frac{n(n^2+5n+6)}{6} + 5n^2 - 21n + 18
$$
因此,可以用以下代码实现:
```python
n = int(input())
s = n*(n**2+5*n+6)//6 + 5*n**2 - 21*n + 18
print(s)
```
阅读全文