You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现pi、欧拉数等常数的金字塔表示功能

金字塔表示实现方案

规则明确

  • 输入为常数字符串、金字塔行数n
  • 共n行从上到下编号,第i层(i=1,2,…,n)包含i个数值,每个数值为常数字符串中连续i个数字的和,依次向后滑动1位取数,常数字符串中的小数点需忽略

核心优化思路

要实现2层循环且无超时,可通过两步预处理避免嵌套求和逻辑:

  1. 先提取常数字符串中的所有数字转为整数列表,省去循环中反复判断小数点的开销
  2. 构造前缀和数组,实现任意连续区间和的O(1)计算,无需额外嵌套循环求和

实现代码

# 读取输入
cte = input()
verdiep = int(input())

# 预处理1:提取所有数字,忽略小数点
digits = [int(c) for c in cte if c != '.']
# 预处理2:构造前缀和数组,pre_sum[k]表示前k个数字的累加和,pre_sum[0]=0
pre_sum = [0]
for num in digits:
    pre_sum.append(pre_sum[-1] + num)

# 两层循环生成金字塔
for i in range(1, verdiep + 1):
    current_line = []
    # 第i层共i个和,起始索引从0到i-1
    for j in range(i):
        # 连续i个数字的和 = 前缀和差值
        sum_val = pre_sum[j + i] - pre_sum[j]
        current_line.append(str(sum_val))
    print(' '.join(current_line))

复杂度说明

  • 预处理总时间复杂度为O(m),m为常数字符串长度
  • 两层循环总迭代次数为n(n+1)/2,每次迭代为O(1)计算,整体时间复杂度为O(m + n²),无超时风险

内容的提问来源于stack exchange,提问作者Monkey D. Ruffy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:45:00