#include <stdio.h>/* 定义获取单词数量的函数 */int getWordNumber(int n){ if(n == 1) { return 1; //第一天只会1个单词 } else{ return getWordNumber(n-1)+n; //到第天会的单词数量 }}int main(){ int num = getWordNumber(10); //获取会了的单词数量 printf("小明第10天记了:%d个单词。\n", num); return 0;}
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
这是遇到了所谓的“递归截至条件”,也就是 if(n == 1),这一句满足后就直接返回了。注意之前多次递归调用 getWordNumber 都没有返回,直到这次返回了,于是这一串递归就依次返回值给上次的调用......这样就结束了整个递归并且把结果带回来了。 这就是递归的逻辑。
我在老问答区里有个更详细的说明,还不懂的话你可以参考下:http://www.imooc.com/qadetail/90499
- 1 回答
- 0 关注
- 1510 浏览
添加回答
举报
0/150
提交
取消