n steps with 1, 2 or 3 steps taken. How many ways to get to the top?

前端 未结 13 848
时光说笑
时光说笑 2020-12-08 08:12

If we have n steps and we can go up 1 or 2 steps at a time, there is a Fibonacci relation between the number of steps and the ways to climb them. IF and ONLY if we do not co

13条回答
  •  暖寄归人
    2020-12-08 08:59

    Java recursive implementation based on Michał's answer:

    public class Tribonacci {
        // k(0) = 1
        // k(1) = 1
        // k(2) = 2
        // k(3) = 4
        // ...
        // k(n) = k(n-3) + k(n-2) + k(n - 1)
    
        static int get(int n) {
            if (n == 0) {
                return 1;
            } if (n == 1) {
                return 1;
            } else if (n == 2) {
                return 2;
            //} else if (n == 3) {
            //    return 4;
            } else {
                return get(n - 3) + get(n - 2) + get(n - 1);
            }
        }
    
        public static void main(String[] args) {
            System.out.println("Tribonacci sequence");
            System.out.println(Tribonacci.get(1));
            System.out.println(Tribonacci.get(2));
            System.out.println(Tribonacci.get(3));
            System.out.println(Tribonacci.get(4));
            System.out.println(Tribonacci.get(5));
            System.out.println(Tribonacci.get(6));
        }
    }
    

提交回复
热议问题