为了账号安全,请及时绑定邮箱和手机立即绑定

这是一道关于一个数可采用几次乘法,几次加法所得的题。有关递归

这是一道关于一个数可采用几次乘法,几次加法所得的题。有关递归

lalalaaaa 2017-02-03 11:09:23
function test(target){      function test2(start,str){      if(start == target)      return str;      else if(start > target)      return null;      else      return test2(start+5,"("+str+"+5)");           // ||test2(start*3,"("+str+"*3)");            //  采用注释内容可正常输出:(((1*3)+5)*3)          // ||这个运算符不是左边为true就不计算右边了吗,为什么会计算右边?      }      return test2(1,"1");      }      console.log(test(24));    
查看完整描述

1 回答

?
stone310

TA贡献361条经验 获得超191个赞

test(24)代入test2(start+5,"("+str+"+5)");这个算出来的结果是null,所以就计算右边,如果你改成 test(26),那么就会计算左边表达式

查看完整回答
反对 回复 2017-02-04
  • lalalaaaa
    lalalaaaa
    start+5不是6吗?6不是<24吗?
  • stone310
    stone310
    是啊6<24,所以触发return test2(start+5,"("+str+"+5)"); 这句递归执行,一直到>24,然后返回null
  • lalalaaaa
    lalalaaaa
    我的理解是这样的。。。: (1+5) 6,(1+5) ((1+5)+5) 11,((1+5)+5) (((1+5)+5)+5) 16,(((1+5)+5)+5) ((((1+5)+5)+5)+5) 21,((((1+5)+5)+5)+5) 26,null 到底是怎么算的呀?。
点击展开后面7
  • 1 回答
  • 0 关注
  • 1049 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信