Count the number of ways a baby can reach the n’th stair taking 1 or 2 steps at a time in C language.

Problem Description:

A baby wants to climb the stairs. It can take single step at a time or take 2 steps at a time. Or it can take combination of 1 and 2 steps at a time.
Given that there are N stairs, find the number of ways the baby can reach the top of the stairs.

Solution Diagram:

Suppose there are 3 steps, there can be 3 ways the baby can reach the top of the stairs. Below is the diagram to explain the same.
One Step at a time
Two step then one step 
One step then Two step

More Example:

If steps = 1

Only 1 way
If steps = 2

(1, 1), (2)
2 ways.
If steps = 4

(1, 1, 1, 1), (2, 2), (1, 1, 2), (2, 1, 1), (1, 2, 1)
5 ways.
In a way, this is equal to Fibonacci series. Here if there are N steps, then the number of ways to climb will be Fibonacci(N + 1)
Suppose we have N = 4;

Solution in C language:

#include<stdio.h>

int calculate_fibonacci(int num)
{
	if (num <= 1)
		return num;

	return calculate_fibonacci(num - 1) + calculate_fibonacci(num - 2);
}


int get_number_of_ways(int stairs)
{
	return (calculate_fibonacci(stairs + 1));
}


int main(int argc, char const *argv[])
{
	int no_of_stairs = 0;
	int no_of_ways = 0;

	printf("Please enter number of stairs\n");
	scanf("%d", &no_of_stairs);

	no_of_ways = get_number_of_ways(no_of_stairs);

	printf("The number of ways the baby can climb is %d \n",no_of_ways );

	return 0;
}

Output:

Please enter number of stairs
4
The number of ways the baby can climb is 5
Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *