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

如何用递归实现数字先降序截断再升序恢复的级联打印

递归实现级联打印的修改方案

核心原理是利用递归调用的回溯特性:你现有代码只利用了递归向下调用阶段的执行逻辑完成降序打印,只需要在递归调用语句的后方追加打印逻辑,就可以在递归逐层返回的回溯阶段自动完成升序补全打印,不需要额外维护长度追踪、状态标记这类冗余变量。

修改后完整代码

function cascade(number) {
  const strNum = number.toString();
  // 向下递归阶段的降序打印
  console.log(strNum);
  // 长度大于1时继续截断递归
  if (strNum.length > 1) {
    const truncated = strNum.substring(0, strNum.length - 1);
    cascade(truncated);
    // 回溯阶段的升序打印
    console.log(strNum);
  }
}

// 测试调用
cascade(12345);

执行逻辑说明

以调用cascade(123)为例,执行流程如下:

  • 第一层(输入123):打印123 → 截断为12进入下一层递归
  • 第二层(输入12):打印12 → 截断为1进入下一层递归
  • 第三层(输入1):打印1 → 长度为1不继续递归,返回上一层
  • 回到第二层:执行递归后的打印语句,输出12 → 返回上一层
  • 回到第一层:执行递归后的打印语句,输出123 → 执行结束

最终输出顺序为:123、12、1、12、123,完全符合需求。调用cascade(12345)就会输出你要求的完整序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:24:04