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

怎么没有一直循环下去呢?

我也没有理解 也没有说n>=1呀,到0, -1 ,-2了怎么办呀?感觉一直循环下去了呀?求大神赐教,谢谢

正在回答

3 回答

因为在递归的过程中一直执行到n=1时,执行到if(i==1){return 1};而return

 1;作为终止语句就直接结束了整个递归调用,而且也刚好递归到f(n)*f(n-1)...f(2)*f(1);

0 回复 有任何疑惑可以回复我~

这是数学函数表达式:

f(1)=1

f(n)=f(n-1)+n (n>=1)

如果在if中写n>=1,那么结果就一直是1;

所以写n==1;

我试了n<=1的情况,结果依然正确,所以这说明return 1 有停止语句结束的功能,第一个return语句中没有含变量的函数,作为终止语句。

当然用三目运算符精简后的就更明白了

return n==1?1:getWordNumber(n-1)+n ;  

1 回复 有任何疑惑可以回复我~

不如判断为(0.00,24.00)就是说判断是不是从5.00-23.00这样行吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么没有一直循环下去呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信