有n个台阶的楼梯,有人可以1次走1步,也可以走两步,也可以走三步,问有多少种走法?

Posted 闭关苦炼内功

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有n个台阶的楼梯,有人可以1次走1步,也可以走两步,也可以走三步,问有多少种走法?相关的知识,希望对你有一定的参考价值。

交流群里有个小姐姐问了个问题:

有n个台阶的楼梯,有人可以1次走1步,也可以走两步,也可以走三步,问有多少种走法?

显然这个是斐波那契数列,表达式为 f(n)=f(n-1)+f(n-2)+f(n-3)

好久没写代码了,写个demo,分享一哈

package com.coding.demo;

public class StepDemo {
/*
    递归的思想:
    走1步则还剩余n-1个台阶,
    走2步则还剩余n-2个台阶,
    走3步则还剩余n-3个台阶。
    分别接着去求出n-1、n-2、n-3个台阶的走法
*/

    public static int StepCompute(int step){
        
        if(step == 0){
            return 0;
        } else if(step == 1){
            return 1;
        } else if(step == 2){
            return 2;
        } else if(step == 3){
            return 3;
        } else {
            return StepCompute(step - 1) + StepCompute(step - 2) + StepCompute(step - 3);
        }

        /*
        switch (step){
            case 0:
            case 1:
                return 1;
            case 2:
                return 2;
            case 3:
                return 3;
            default:
                return StepCompute(step - 1) + StepCompute(step - 2) + StepCompute(step - 3);
        }
        */

    }

    public static void main(String[] args){
        
        int rs = StepCompute(10);
        System.out.println(rs);
        
    }

}

不喜勿喷!

以上是关于有n个台阶的楼梯,有人可以1次走1步,也可以走两步,也可以走三步,问有多少种走法?的主要内容,如果未能解决你的问题,请参考以下文章

n阶楼梯,一次走1,2,3步,求多少种不同走法

二叉树深度优先搜索n个台阶,一次走一步,走两步,走三步,有多少种可能

n个台阶,每次都可以走一步,走两步,走三步,走到顶部一共有多少种可能

100003. 上楼梯

华为机试题 N阶楼梯的走法,每次走一步或者两步

北京大学 程序设计与算法 递归 上台阶