故名思议自己调用自己,我们从简单到复杂、
/**
 * 递归
 */
public static void myI(int n) {
    if (n < 0) {
        return;
    } else {
        myI(n - 1);
        System.out.println(n);
    }
}这个是最简单的递归
2,复杂点的就是阶乘 1,1,2,3,5,8,13想这样的
/**
 * 递归调用阶乘 1+1+2+3+5+8
 */
public int FibonacciSequence(int n){
    if(n==1 || n==2){
        return 1;
    }else{
        int i=FibonacciSequence(n-1)+FibonacciSequence(n-2);
        System.out.println(i+"数字");
        return FibonacciSequence(n-1)+FibonacciSequence(n-2);
    }
}一个正序列,一个反序,为什会出入俩遍一开始我没有懂后来我懂了,是压栈了,
3,加大点难度的汉诺塔问题
 /**
     *
     * @param n         盘子的个数
     * @param start     开始的柱子
     * @param middle    中介柱子
     * @param end        结果的柱子
     */                       //5         1          2         3
    public static void hanoi(int n,int start,int middle,int end){
        if(n<=1){
            System.out.println(start+"---->"+end);
        }else{      //  1    3    2
            hanoi(n-1,start,end,middle);//把第一个上的n-1个移到中间
            System.out.println(start+"---->"+end);//把第一个上的一个移到最后
                    //  2     1     3
            hanoi(n-1,middle,start,end);//把中间的n-1个移到最后
        }
    }这个的好好琢磨琢磨
生活中我们遍历内存卡用到递归。
点击查看更多内容
					为 TA 点赞
										
				 评论
				共同学习,写下你的评论
评论加载中...
作者其他优质文章
					正在加载中
				
			感谢您的支持,我会继续努力的~
		扫码打赏,你说多少就多少
		赞赏金额会直接到老师账户
		支付方式
		打开微信扫一扫,即可进行扫码打赏哦