Given an integer N which depicts the number of stairs, the task is to count the number of ways to reach Nth stair by taking jumps of 1 to N.
Examples:
Input: N = 2
Output: 2
Explanation: Two ways to reach are: (1, 1) & (2)Input: N = 3
Output: 4Input: N = 4
Output: 8
Approach: In this problem, the number of ways to reach the ith stair is:
Ways to reach ith stair = (Sum of ways to reach stairs 1 to i-1)+1
As for any stair before i, ithstair can be reached in a single jump. And +1 for jumping directly to i.
Now to solve this problem:
- Create a variable sum to store the number of ways to reach on a particular stair. Initialise it with 0.
- Run a loop from i=1 to i=N-1 and for each iteration:
- Create a variable, say cur to store the number of ways to the current stair. So, cur = sum + 1.
- Change sum to sum = sum + cur.
- Return sum + 1 after the loop ends as the answer to this problem.
Below is the implementation of the above approach:
// C++ code for the above approach #include <bits/stdc++.h> using namespace std;
// Function to count the number of ways // to reach Nth stair int findWays( int N)
{ int sum = 0;
for ( int i = 1; i < N; i++) {
int cur = sum + 1;
sum += cur;
}
return sum + 1;
} // Driver Code int main()
{ int N = 10;
cout << findWays(N);
} |
// Java code for the above approach import java.util.*;
public class GFG
{ // Function to count the number of ways
// to reach Nth stair
static int findWays( int N)
{
int sum = 0 ;
for ( int i = 1 ; i < N; i++) {
int cur = sum + 1 ;
sum += cur;
}
return sum + 1 ;
}
// Driver Code
public static void main(String args[])
{
int N = 10 ;
System.out.print(findWays(N));
}
} // This code is contributed by Samim Hossain Mondal. |
# python3 code for the above approach # Function to count the number of ways # to reach Nth stair def findWays(N):
sum = 0
for i in range ( 1 , N):
cur = sum + 1
sum + = cur
return sum + 1
# Driver Code if __name__ = = "__main__" :
N = 10
print (findWays(N))
# This code is contributed by rakeshsahni |
// C# code to implement above approach using System;
class GFG
{ // Function to count the number of ways
// to reach Nth stair
static int findWays( int N)
{
int sum = 0;
for ( int i = 1; i < N; i++) {
int cur = sum + 1;
sum += cur;
}
return sum + 1;
}
// Driver code
public static void Main()
{
int N = 10;
Console.Write(findWays(N));
}
} // This code is contributed by Samim Hossain Mondal. |
<script> // JavaScript code for the above approach
// Function to count the number of ways
// to reach Nth stair
function findWays(N) {
let sum = 0;
for (let i = 1; i < N; i++) {
let cur = sum + 1;
sum += cur;
}
return sum + 1;
}
// Driver Code
let N = 10;
document.write(findWays(N));
// This code is contributed by Potta Lokesh </script>
|
512
Time Complexity: O(N)
Auxiliary Space: O(1)