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

为什么会反向打印每天所剩桃子数?

没有循环语句,为什么会反向打印每天所剩桃子数???

提问者:梦想就是程序员 2019-08-06 15:48

个回答

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

    int getPeachNumber(n)

    {

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

        if(n==10)

        {

           return 1;       //递归结束条件

        } 

        else

        {

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

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

        }

        return num;

    }

    getPeachNumber(n)这个函数一直被调用一层一层的。

    num = (getPeachNumber(n+1)+1)*2;   //这里是不应该用递归呢?这一行语句一直执行直到getPeachNumber(10),所以说这个函数被调用了10次,9次要printf所以getPeachNumber(9)的printf先打出来。最后调用的函数最先走完嘛。