问答详情
源自:5-7 递归函数(一)

递归函数调用过程中是如何实现循环的

循环结构不是while do-while for这些吗

提问者:慕先生2405816 2018-03-10 08:59

个回答

  • 慕田峪3667243
    2018-05-12 12:19:49

    #include <stdio.h>
    /* 定义获取单词数量的函数 */
    int getWordNumber(int n)
    {   int num;
        if(n == 1)
        {
            return 1;    //第一天只会1个单词
        }
        else{num=getWordNumber(n-1)+n;/*getWordNumber( n)=getWordNumber(n-1)+n*/
            return num;       //到第天会的单词数量
        }
    }
    int main()
    {
        int num = getWordNumber(10);     //获取会了的单词数量
        printf("小明第10天记了:%d个单词。\n", num);
        return 0;
    }递归就是调用他本身,调到跳出递归

  • 慕虎2399049
    2018-03-10 20:57:54

    我的理解是:递归,它调用了本身,在例题中输入的是n,

    故执行sayHallo(n);

    return的是sayHallo(n-1)*n等等的关系,它也return了本身,

    所以还要执行一次sayHallo(n-1);

    return的是sayHallo(n-2)*(n-1),

    所以还要执行一次sayHallo(n-2);

    return的是sayHallo(n-3)*(n-2),.........................................