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

看不懂这句话

递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序  这句怎么理解?

正在回答

2 回答

#include <stdio.h>
int getPeachNumber(n)
{
   int num;    //定义所剩桃子数
   if(n==10)
   {
      return 1;//递归结束条件
   } 
   else
   {
       num = (getPeachNumber(n+1)+1)*2;   //这里是不应该用递归呢?
       printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
   }
   return num;
}

当第一个变量n进入getPeachNumber递归函数时,首先变量n会先进入if 函数,不符合后进入else执行代码块。递归调用语句 num = (getPeachNumber(n+1)+1)*2; 中“getPeachNumber(n+1)”相当于再次进入函数getPeachNumber,这里n+1 相当于次级变量,它像变量n一样首先要进入if函数进行判断,然后执行其余代码块。这就是“位于递归调用前的语句和各级被调用函数具有相同的执行顺序”的意思。 

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

慕函数409345 提问者

非常感谢!
2017-11-04 回复 有任何疑惑可以回复我~

num = getPeachNumber(n+1)*2+2;

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926211    人
  • 解答问题       20797    个

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

进入课程

看不懂这句话

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