qq_斧子_03961247
2018-06-11 20:17
递归为什么要把n==1的情况单独写一下啊? 求大神指点!!!!感谢!!!!
n == 1就是递归的基例,即递归停止的条件,如果没有基例,递归会一直运行,没有结束。
不写出n==1的情况,就不会截到1停,还会往下运行。
尬讲一下,就个人所得,因为递归是从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;}
C语言入门
926026 学习 · 20793 问题
相似问题