课程
/后端开发
/C
/C语言入门
递归为什么要把n==1的情况单独写一下啊? 求大神指点!!!!感谢!!!!
2018-06-11
源自:C语言入门 5-7
正在回答
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;}
井尔i
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
2 回答递归中(n–1)*n
3 回答为什么递归是num =(getPeachNumber(n+1)+1)*2
1 回答递归函数num = getWordNumber(n-1)+n;
1 回答为什么没写n<0的情况
1 回答递归函数 关于n==1