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

递归为什么要把n==1的情况单独写一下啊?

递归为什么要把n==1的情况单独写一下啊? 求大神指点!!!!感谢!!!!

正在回答

3 回答

n == 1就是递归的基例,即递归停止的条件,如果没有基例,递归会一直运行,没有结束。

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

不写出n==1的情况,就不会截到1停,还会往下运行。

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

尬讲一下,就个人所得,因为递归是从n一直倒推到1,然后再从1将  1到n的结果按你给的递归的公式计算出来,而根据题目是从1开始计算到n天,所以n==1开始。如果你希望将n==1这个初始修改,根据题意,你需要同时修改初始的返回值,如将

if(n == 3){ return 3+2+1;    /*   第一天只会1个单词,第二天在第一天的基础上再学两个所以就算2+1,所以第三天来初始化就是3+2+1 。      */ }只是这样会把递归可以实现的过程自己手动化,根据题目是从第一天开始,n==1作为初始最符合题意。当然,初始化为0也是合适的,比如if(n==0){return 0;}


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

井尔i

如有错漏,敬请更正!
2018-06-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

递归为什么要把n==1的情况单独写一下啊?

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