课程
/后端开发
/C
/C语言入门
我也没有理解 也没有说n>=1呀,到0, -1 ,-2了怎么办呀?感觉一直循环下去了呀?求大神赐教,谢谢
2017-11-03
源自:C语言入门 5-7
正在回答
因为在递归的过程中一直执行到n=1时,执行到if(i==1){return 1};而return
1;作为终止语句就直接结束了整个递归调用,而且也刚好递归到f(n)*f(n-1)...f(2)*f(1);
这是数学函数表达式:
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 ;
不如判断为(0.00,24.00)就是说判断是不是从5.00-23.00这样行吧
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
2 回答用for循环怎么写呢?
2 回答请问一下,外部循环和内部循环怎么区分
1 回答多重循环怎么循环
3 回答多重循环怎么循环的啊?
2 回答秋水仙数,一直在循环,没有停在1000范围内