# JavaScript: Distinct ways to climb the staircase

## JavaScript Math: Exercise-104 with Solution

A staircase consists of N steps, and you are given the choice of climbing one step at a time or two steps at a time.
Write a JavaScript program to find distinct ways to climb the staircase.

Example:
Number of stairs = 2
There are 2 ways to climb the stairs: (1,1) and (2)
Number of stairs = 3
There are 3 ways to climb the stairs: (1,1,1), (2,1) and (1,2)

Visual Presentation:

Test Data:
(2) -> 2
(3) -> 3

Sample Solution:

Solution-1

JavaScript Code:

``````/**
* Function to calculate the number of ways to climb a staircase with n steps.
* @param {number} n - The number of steps in the staircase.
* @returns {number} - The number of ways to climb the staircase.
*/
function test(n) {
var x = 0, // Variable to store the previous Fibonacci number
y = 1; // Variable to store the current Fibonacci number

// Loop to calculate the Fibonacci number iteratively
while (n-- > 0) {
y = x + y; // Calculate the next Fibonacci number
x = y - x; // Update the previous Fibonacci number
}

return y; // Return the current Fibonacci number
}

n = 2;
console.log("Number of stairs = " + n);
console.log("Number of ways to climb the said number of stairs: " + test(n));

n = 3;
console.log("Number of stairs = " + n);
console.log("Number of ways to climb the said number of stairs: " + test(n));
```
```

Output:

```Number of stairs = 2
```

Flowchart:

Live Demo:

See the Pen javascript-math-exercise-104 by w3resource (@w3resource) on CodePen.

Solution-2

JavaScript Code:

``````/**
* Function to calculate the number of ways to climb a staircase with n steps using dynamic programming.
* @param {number} n - The number of steps in the staircase.
* @returns {number} - The number of ways to climb the staircase.
*/
function test(n) {
nums = []; // Array to store the number of ways to climb each step

nums[1] = 1; // Number of ways to climb 1 step
nums[2] = 2; // Number of ways to climb 2 steps

// Loop to calculate the number of ways to climb each step from 3 to n
for (i = 3; i <= n; i++) {
nums[i] = nums[i - 1] + nums[i - 2]; // Number of ways to climb the current step
}

return nums[n]; // Return the number of ways to climb the nth step
}

n = 2;
console.log("Number of stairs = " + n);
console.log("Number of ways to climb the said number of stairs: " + test(n));

n = 3;
console.log("Number of stairs = " + n);
console.log("Number of ways to climb the said number of stairs: " + test(n));
```
```

Output:

```Number of stairs = 2
Number of ways to climb the said number of stairs: 2
Number of stairs = 3
Number of ways to climb the said number of stairs: 3
```

Flowchart:

Live Demo:

See the Pen javascript-math-exercise-104-1 by w3resource (@w3resource) on CodePen.

Improve this sample solution and post your code through Disqus.

Next: Conversion of integers to English words.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

Follow us on Facebook and Twitter for latest update.