# Challenge: The Staircase Problem

In this lesson, you will work on an interesting problem that can be solved using dynamic programming.

We'll cover the following

## Problem statement

Nick is standing next to a staircase that leads to his apartment. The staircase has n total steps; Nick knows he can climb anywhere between 1 and m steps in one jump. He thinks about how many ways there are to climb this staircase. He realizes it is a big number since there are a lot of possible combinations. So, he has asked you to write an algorithm for him that tells him the number of possible ways to climb a staircase given n (number of steps) and, m (number of steps covered in biggest jump).

## Input

Your algorithm will take as input n, the number of steps in the staircase and, m, the number of steps covered in the biggest leap. Nick can jump any number of stairs between 1 and m.

n = 4
m = 2


## Output

Your algorithm will return the number of possible ways to climb the staircase.

staircase(n, m) = 5



Look at the following visualization as a hint for the challenge.

Get hands-on with 1200+ tech skills courses.