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

关于JavaScript递归函数mlt输出337的原因咨询

代码输出337的原因解释

先拆解这个mlt函数的逻辑,它是用递归+加法模拟乘法运算:

  • 第一个判断!(a&&b):只要a或b是假值(比如0、undefined等),直接返回0,用来处理无效输入的边界情况。
  • 第二个判断b==1:任何数乘1都是它本身,所以直接返回a。
  • 递归分支:当b>1时,a*b等价于a + a*(b-1),所以递归调用mlt(a, b-1)再加上a,直到b变成1触发终止条件。

再看两次函数调用的执行结果:

  1. mlt(3, 11):
    相当于计算3×11,递归过程就是不断累加3,一共加11次,结果是33,所以这个调用输出33。
  2. mlt(7, 1):
    触发b==1的条件,直接返回7,所以这个调用输出7。

因为document.write是连续输出内容的,不会自动添加分隔符,所以33和7连在一起就变成了337。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:57:23