问答详情
源自:5-8 递归函数(二)

关于递归函数反向打印问题

1.递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;

 2. 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反

如何理解这两句话,可以举个实际例子么


提问者:废寝忘食陈同学 2019-08-06 16:12

个回答

  • 小小疾飞
    2019-08-06 16:16:36
    已采纳

    陈同学,看看这个。

    #include <stdio.h>

    a=0;

    int getPeachNumber(n)

    {

        int num;    //定义所剩桃子数

        printf("第%d次\n",a++);

        if(n==10)

        {

           return 1;       //递归结束条件

        }

        else

        {

            num = (getPeachNumber(n+1)+1)*2;   //这里是不应该用递归呢?

            printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数

        }

        return num;

    }

    int main()

    {

        int num = getPeachNumber(1);

        printf("猴子第一天摘了:%d个桃子。\n", num);

        return 0;

    }


  • 小神0x00
    2019-08-06 16:18:27

    可以用函数f(x) (高中数学知识)  来理解递归

    我表述能力不太好,讲起来怕会云里雾里的?