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

请问一下递归函数为什么到1就自动停止循环

请问一下递归函数为什么到1就自动停止循环

C C# C++
慕工程0005766 2017-09-17 09:51:21
#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

查看完整回答
反对 回复 2017-09-17
  • 1 回答
  • 0 关注
  • 1510 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信