递归在平常的开发过程中使用的不是太多,但是作为一个经典算法,我们必须也要了解一下,递归在使用的过程中一定要有递归的结束条件,否则就会出现java内存溢出,导致整个系统崩溃。下面使用递归计算100以内的数的累计求和让大家更深刻的理解一下递归算法。
- public class TestDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- System.out.println(sum(100));
- }
- /**
- * @param 求和方法
- */
- public static int sum(int num){
- if(num == 1){
- return 1;
- }
- return num + sum(num-1);
- }
- }
上面这个代码就简单的实现类一个递归调用,
当num 不等于1的时候,方法一直在:
“执行return中的方法(但是不return)=>
然后自己调用自己=>
直到num==1的时候,return 1;开始从“最内层”开始执行return,直到最外层return=>
最终返回给main方法”,
递归调用结束。
例如:return 5+(4+(3+(2+(1)));
注意:使用递归的时候,递归方法一定要有结束条件。
转载自:https://blog.csdn.net/zhengyangzkr/article/details/70246210