Climbing Stairs in Java: Explanation & Practice

Count distinct ways to climb n stairs (1 or 2 steps)

Problem summary

You can climb 1 or 2 stairs at a time. Given n stairs, count how many distinct ways you can reach the top. Classic DP problem!

Starter code

public class Main {
    public static void main(String[] args) {
        int n = 5;
        
        // ways(n) = ways(n-1) + ways(n-2)
        // From step n-1: take 1 step
        // From step n-2: take 2 steps
        // Print: Ways: 8
    }
}

Expected output and test cases

  • 5 stairs → 8 ways
    Ways: 8
  • 3 stairs → 3 ways
    Ways: 3
  • 10 stairs → 89 ways
    Ways: 89

Hints

  1. This is Fibonacci in disguise!
  2. To reach step n, you came from n-1 (1 step) or n-2 (2 steps)
  3. So ways[n] = ways[n-1] + ways[n-2]
  4. Base cases: ways[1]=1, ways[2]=2

Related Data Structures & Algorithms exercises

Practice all Data Structures & Algorithms exercises · Run this idea in the Java compiler