使用Python计算数列5、55、555、5555……前n项的和
计算由5、55、555…组成的数列前n项和的Python实现
方法1:循环累加生成每一项
这种方法直观易懂,通过循环逐个生成数列中的每一项,再累加求和。核心逻辑是每次将当前项乘以10再加5,得到下一项。
def sum_series(n): total = 0 current = 0 for _ in range(n): current = current * 10 + 5 total += current return total # 测试n=5的情况 print(sum_series(5)) # 输出:61725
方法2:数学公式法
如果n很大,循环的效率会降低,这时可以用数学公式直接计算。推导过程如下:
- 数列的第k项为:$555...5$(k个5)=$\frac{5}{9} \times (10^k - 1)$
- 前n项和为:$\sum_{k=1}^n \frac{5}{9}(10^k -1) = \frac{5}{9} \times \left( \frac{10(10^n -1)}{9} - n \right)$
用公式实现的代码如下:
def sum_series_math(n): return (5 * (10 * (10**n - 1) // 9 - n)) // 9 # 测试n=5的情况 print(sum_series_math(5)) # 输出:61725
两种方法都能得到正确结果,循环法适合小n且逻辑直观,公式法适合大n场景,计算效率更高。
内容的提问来源于stack exchange,提问作者Anurak_12210287
相关产品推荐
相关产品推荐

