算法---递归及尾递归

什么叫递归?举个例子,我们排队,想知道自己排在第几个,那么我们可以问前面的那个人,前面的人继续问前面,直到问到第一个人,这就是传递的过程。然后再从第一个人回来,这就是归(回溯)的过程。传递过去再回归回来,这就是递归。第一个人就是我们所说的递归出口,也就是说到哪个点应该回归了,如果没有出口,那么就会死循环了栈溢出。

在代码中简单来说就是自己调用自己。拿到自己的结果再作为入参调用自己。

比如我们求阶乘:

5的阶乘: 5*4*3*2*1

我们用递归来写,那么出口就是n=1的时候:代码如下

/** * 阶乘 * @param n * @return */ public static int factorial(int n) { if (n <= 1) { return 1; } return n * factorial(n - 1); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxspy.html