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

如何递归实现生成小于n的k的倍数的通用Python程序?

通用化倍数打印函数的修改方案

原代码的问题在于递归时硬编码了步长7,导致只能处理7的倍数,无法适配任意k值。要实现通用版本,需要将步长改为动态传入的参数,而非固定值。

修改后的代码

def multiples(step, n, current=None):
    """打印小于等于n的step的所有倍数"""
    # 第一次调用时初始化当前值为第一个倍数(即step本身)
    if current is None:
        current = step
    if current <= n:
        print(current)
        # 递归时使用传入的step作为步长累加
        multiples(step, n, current + step)

# 示例调用:打印7的倍数(小于等于500)
multiples(7, 500)
# 另一个示例:打印3的倍数(小于等于20)
multiples(3, 20)

修改说明

  • 新增current参数并设置默认值None,用于记录当前要打印的倍数,第一次调用时自动初始化为step(即第一个倍数)
  • 将原代码中硬编码的k +=7改为current + step,确保每次递归都使用传入的步长生成下一个倍数
  • 更新文档字符串,使其描述通用功能而非仅针对7的倍数

内容的提问来源于stack exchange,提问作者Karim Loberg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:15:41