楼梯走法

作者: 崔鹏宇 | 来源:发表于2019-07-26 23:10 被阅读3次

    Github

    public class 楼梯走法 {
        private static int i = 0;
    
        public static void main(String[] args) {
            calc("", 4);
            System.out.println("共有几种 = [" + i + "]");
        }
    
        //上楼梯每次只需一步或者两步,有多少走法
        public static void calc(String log, int num) {
            /**
             *  相减     log值
             *  4-1=3      1
             *  --------------
             *  3-1=2      1、1
             *  2-1=1      1、1、1
             *  1-1=0      1、1、1、1
             *  --------------
             *  3-2=1      1、2
             *  1-1=0      1、2、1
             *  --------------
             *  3-1=2      1、1
             *  2-2=0      1、1、2
             *  -----------------
             *
             *  4-2=2       2
             *  -----------------
             *  2-1=1       2、1
             *  1-1=0       2、1、1
             *  -----------------
             *  2-2=0       2、2
             *
             */
            if (num == 0) {
                i++;
                System.out.println(log);
                return;
            } else if (num == 1) {
                i++;
                System.out.println(log + "1");
                return;
            }
            calc(log + "1  ", num - 1);
            calc(log + "2  ", num - 2);
        }
    
    }
    

    相关文章

      网友评论

        本文标题:楼梯走法

        本文链接:https://www.haomeiwen.com/subject/idijrctx.html