正确使用递归的思路

≡放荡痞女 提交于 2020-03-30 15:49:33

step1:明确我的函数想做什么:对于递归而言,最重要的莫过于搞清楚“这个函数的功能是什么”。它想要什么结果,完全是由我来定义。比如

//计算n的阶乘
    int f(int n){
        return 0;
    }

一个目的性的函数有了,接下来看第二要素

step2:学找递归结束的条件:在定义的函数代码中,调用自己本身,就是递归。因此,我们必须明确递归的结束条件,否则就会陷入“黑洞”中难以自拔。换句话说,也就是当参数满足什么条件时,递归结束,并把结果返回。此时,我们把要素2掺杂进我们刚刚定义好的函数内:

//计算n的阶乘
    int f(int n){
        if (n==1){
            return 1;
        }
        return 0;
    }

 

 

step3:找出函数的等价关系式:精确缩小函数范围,从而的到准确结果。假如我们的等价关系式为f(n) =n*f(n-1):

//计算n的阶乘
    int f(int n){
        if (n<=2){
            return n;
        }
        return n*f(n-1);
    }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!