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

来源:5-7 递归函数(一)

慕先生2405816

2018-03-10 08:59

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

写回答 关注

2回答

  • 慕田峪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;
    }递归就是调用他本身,调到跳出递归

    慕田峪366...

    你必须在定义函数中某些地方使用if语句,强迫函数在碰到边界时返回,否则他永远也不会返回 递归函数调用过程中是如何实现循环的:通过调用本身,设置边界,然后碰撞返回

    2018-05-12 12:23:06

    共 1 条回复 >

  • 慕虎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),.........................................


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题