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

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

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

正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~
#1

慕田峪3667243

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

我的理解是:递归,它调用了本身,在例题中输入的是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),.........................................


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信