课程-递归函数(二)后面问题里的反向输出是怎么实现的?

这是参考答案,程序目的是反向打印每天所剩桃子数

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

    if(n==10)

    {

       return 1;//递归结束条件

    } 

    else

    {

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

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

问题是:程序只是给出了递归的算法并没有给出输出方向和天数起止范围,程序怎么能自主判断呢?



往事不追
浏览 1462回答 1
1回答

tanhouyusheng

这个有个问题就是不到10的时候没有返回,应该在print后边返回num,这个直接调用就好了,每次到num=get的时候会进入到下一次的递归,直到第10天剩一个桃子返回的时候的到了第9天的num,打印返回,一次返回到第一次调用。那个num=get的计算就相当于数列的递推公式。
打开App,查看更多内容
随时随地看视频慕课网APP