为了账号安全,请及时绑定邮箱和手机立即绑定

递归算法

标签:
Android

故名思议自己调用自己,我们从简单到复杂、

/**
 * 递归
 */
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个移到最后
        }
    }
这个的好好琢磨琢磨
生活中我们遍历内存卡用到递归。

原文链接:http://www.apkbus.com/blog-340477-76615.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消