我是靠谱客的博主 苗条麦片,最近开发中收集的这篇文章主要介绍算法之递归实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

递归

递归,在数学与计算机科学中,是指在方法的定义中使用方法自身。也就是说,递归算法是一种直接或者间接调用自身方法的算法。
如下

public static void main(String[] args){
int sum(int a){
return a*sum(a-1);
}
}

这段程序,在sum中传入一个整型数值,然后返回asum(a-1),这个程序的返回值又调用了它自己,但是传入的参数为a-1,如果我们调用sum函数,传入实参为5也就是sum(5),那么程序返回 5sum(5-1),而返回的时候又调用sum(4),传入实参为4,返回4*sum(4-1),以此类推,我们知道这样传入的实参会逐个减小,就算到了负数也还是会继续运算,因此程序会堆栈溢出,程序就报错了,所以我们应该给程序加一个中止的条件,才能保证程序不会堆栈溢出

public static void main(String[] args){
int sum(int a){
if(a==1){
return 1;
}
return a*sum(a-1);
}
}

这样,在a等于1的时候返回1,程序结束,这样程序就不会堆栈溢出了,依然,像上面一样,程序一次一次的调用自己本身,直到a等于1时,返回1,然后程序又返回去执行,就会构成54321这样的式子,这样就得到了5的阶乘也就是5!,想求其他数的阶乘我们只需要更改调出函数时传入的值就好了

最后

以上就是苗条麦片为你收集整理的算法之递归实现的全部内容,希望文章能够帮你解决算法之递归实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部