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

#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;
}

慕工程0005766
浏览 1511回答 1
1回答

onemoo

这是遇到了所谓的“递归截至条件”,也就是 if(n == 1),这一句满足后就直接返回了。注意之前多次递归调用 getWordNumber 都没有返回,直到这次返回了,于是这一串递归就依次返回值给上次的调用......这样就结束了整个递归并且把结果带回来了。 这就是递归的逻辑。我在老问答区里有个更详细的说明,还不懂的话你可以参考下:http://www.imooc.com/qadetail/90499
打开App,查看更多内容
随时随地看视频慕课网APP