- Related Questions & Answers
- Count number of ways to reach a given score in a Matrix in C++
- Count number of ways to divide a number in parts in C++
- Count number of ways to reach destination in a Maze in C++
- Count ways to express a number as sum of powers in C++
- Count number of ways to jump to reach end in C++
- Count ways to express a number as sum of consecutive numbers in C++
- Count number of ways to partition a set into k subsets in C++
- Count ways to spell a number with repeated digits in C++
- Different ways to traverse an Array in Java?
- Count number of ways to reach a given score in a game
- Program to count number of operations to convert binary matrix to zero matrix in C++
- Program to count number of square submatix of 1s in the given matrix in C++
- Count of cells in a matrix which give a Fibonacci number when the count of adjacent cells is added in C++
- Program to count number of surrounded islands in the matrix in python
- Program to count number of islands in a given matrix in Python

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Given a 2D matrix with dimensions row X col. The goal is to count the number of ways one can traverse the matrix from cell 0,0 to cell row, col using only right and down moves, i.e. first move can be 0,0 to 0,1 (down) or 1,0 (right) and not 1,1(diagonal).

**For Example**

col = 2; row = 4

Count of number of ways to traverse a Matrix are: 4

The ways in which we can reach from cell 0,0 to 2,4 is shown −

col = 4; row = 3

Count of number of ways to traverse a Matrix are: 10

We will reduce the problem into smaller recursions. Count ways for col=3, row=2, then for col=2, row=1 ….. For col=1 or row=1 the answer will be 1. (only right or only down move).

**Approach used in the below program is as follows**

In this approach we will use a recursion method. At the end for either row or col as 1. There is only one way which is 1 straight right move or 1 straight down move. This will be the terminating condition for recursion.

Take integers row, col for dimensions of the matrix.

Function ways_traverse_matrix(int row, int col) takes dimensions and returns the count of the number of ways to traverse a Matrix.

For row==1, return 1.

For col==1, return 1.

Else calculate ways using recursion ways_traverse_matrix(temp_1, col) + ways_traverse_matrix(row, temp_2).

Here temp_1=previous row number and temp_2=previous column number.

At the end we will get a count of total ways.

#include <bits/stdc++.h> using namespace std; int ways_traverse_matrix(int row, int col){ if (row == 1){ return 1; } else if(col == 1){ return 1; } else { int temp_1 = row − 1; int temp_2 = col − 1; return ways_traverse_matrix(temp_1, col) + ways_traverse_matrix(row, temp_2); } } int main(){ int col = 2; int row = 2; cout<<"Count the number of ways to traverse a Matrix are: "<<ways_traverse_matrix(row, col); return 0; }

If we run the above code it will generate the following output −

Count the number of ways to traverse a Matrix are: 2

Advertisements