# Count the number of ways to traverse a Matrix

Here given code implementation process.

// C Program
// Count the number of ways to traverse a Matrix
#include <stdio.h>

// Count matrix path
int countPath(int i, int j, int row, int col)
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return countPath(i + 1, j, row, col) + countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
void paths(int row, int col)
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
printf(" Row : %d, Col : %d", row, col);
// Display calculated result
printf("\n Paths : %d\n\n", countPath(0, 0, row - 1, col - 1));
}
int main()
{
// Test Cases
paths(9, 7);
paths(3, 7);
paths(4, 4);
return 0;
}

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
/*
Java Program
Count the number of ways to traverse a Matrix
*/

public class Counting
{

// Count matrix path
public int countPath(int i, int j, int row, int col)
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return countPath(i + 1, j, row, col) +
countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
public void paths(int row, int col)
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
System.out.print(" Row : " + row + ", Col : " + col );
// Display calculated result
System.out.print("\n Paths : " +
countPath(0, 0, row - 1, col - 1) + "\n\n");
}
public static void main(String[] args)
{

// Test Cases
}
}

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
#include <iostream>
using namespace std;

/*
C++ Program
Count the number of ways to traverse a Matrix
*/

class Counting
{
public:
// Count matrix path
int countPath(int i, int j, int row, int col)
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return this->countPath(i + 1, j, row, col)
+ this->countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
void paths(int row, int col)
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
cout << " Row : " << row << ", Col : " << col;
// Display calculated result
cout << "\n Paths : " << this->countPath(0, 0, row - 1, col - 1)
<< "\n\n";
}
};
int main()
{
// Test Cases
return 0;
}

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
// Include namespace system
using System;
/*
Csharp Program
Count the number of ways to traverse a Matrix
*/
public class Counting
{
// Count matrix path
public int countPath(int i, int j, int row, int col)
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return this.countPath(i + 1, j, row, col) +
this.countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
public void paths(int row, int col)
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
Console.Write(" Row : " + row + ", Col : " + col);
// Display calculated result
Console.WriteLine("\n Paths : " + this.countPath(0, 0, row - 1, col - 1) + "\n");
}
public static void Main(String[] args)
{
// Test Cases
}
}

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
<?php
/*
Php Program
Count the number of ways to traverse a Matrix
*/
class Counting
{
// Count matrix path
public	function countPath(\$i, \$j, \$row, \$col)
{
if (\$i == \$row && \$col == \$j)
{
return 1;
}
else if (\$i <= \$row && \$j <= \$col)
{
//  Count matrix path recursively
return \$this->countPath(\$i + 1, \$j, \$row, \$col)
+ \$this->countPath(\$i, \$j + 1, \$row, \$col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
public	function paths(\$row, \$col)
{
if (\$row <= 0 || \$col <= 0)
{
return;
}
// Display given rows and columns
echo(" Row : ".\$row.
", Col : ".\$col);
// Display calculated result
echo("\n Paths : ".\$this->countPath(0, 0, \$row - 1, \$col - 1).
"\n\n");
}
}

function main()
{
// Test Cases
}
main();

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
/*
Node JS Program
Count the number of ways to traverse a Matrix
*/
class Counting
{
// Count matrix path
countPath(i, j, row, col)
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return this.countPath(i + 1, j, row, col)
+ this.countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
paths(row, col)
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
process.stdout.write(" Row : " + row + ", Col : " + col);
// Display calculated result
console.log("\n Paths : "
+ this.countPath(0, 0, row - 1, col - 1)
+ "\n");
}
}

function main()
{
// Test Cases
}
main();

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
#    Python 3 Program
#    Count the number of ways to traverse a Matrix
class Counting :
#  Count matrix path
def countPath(self, i, j, row, col) :
if (i == row and col == j) :
return 1
elif (i <= row and j <= col) :
#   Count matrix path recursively
return self.countPath(
i + 1, j, row, col
) + self.countPath(
i, j + 1, row, col
)
else :
return 0

#  Handles the request to count path of the matrix
def paths(self, row, col) :
if (row <= 0 or col <= 0) :
return

#  Display given rows and columns
print(" Row : ", row ,", Col : ", col, end = "")
#  Display calculated result
print("\n Paths : ", self.countPath(0, 0, row - 1, col - 1) ,"\n")

def main() :
#  Test Cases

if __name__ == "__main__": main()

#### input

Row :  9 , Col :  7
Paths :  3003

Row :  3 , Col :  7
Paths :  28

Row :  4 , Col :  4
Paths :  20
#    Ruby Program
#    Count the number of ways to traverse a Matrix
class Counting
#  Count matrix path
def countPath(i, j, row, col)
if (i == row && col == j)
return 1
elsif (i <= row && j <= col)
#   Count matrix path recursively
return self.countPath(i + 1, j, row, col) +
self.countPath(i, j + 1, row, col)
else

return 0
end

end

#  Handles the request to count path of the matrix
def paths(row, col)
if (row <= 0 || col <= 0)
return
end

#  Display given rows and columns
print(" Row : ", row ,", Col : ", col)
#  Display calculated result
print("\n Paths : ",
self.countPath(0, 0, row - 1, col - 1) ,
"\n\n")
end

end

def main()
#  Test Cases
end

main()

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20

/*
Scala Program
Count the number of ways to traverse a Matrix
*/
class Counting()
{
// Count matrix path
def countPath(i: Int, j: Int, row: Int, col: Int): Int = {
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return countPath(i + 1, j, row, col) +
countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
def paths(row: Int, col: Int): Unit = {
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
print(" Row : " + row + ", Col : " + col);
// Display calculated result
print("\n Paths : " + countPath(0, 0, row - 1, col - 1) + "\n\n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Counting = new Counting();
// Test Cases
}
}

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20
/*
Swift 4 Program
Count the number of ways to traverse a Matrix
*/
class Counting
{
// Count matrix path
func countPath(_ i: Int, _ j: Int, _ row: Int, _ col: Int) -> Int
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return self.countPath(i + 1, j, row, col) +
self.countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
func paths(_ row: Int, _ col: Int)
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
print(" Row : ", row ,", Col : ", col, terminator: "");
// Display calculated result
print("\n Paths : ", self.countPath(0, 0, row - 1, col - 1) ,"\n");
}
}
func main()
{
// Test Cases
}
main();

#### input

Row :  9 , Col :  7
Paths :  3003

Row :  3 , Col :  7
Paths :  28

Row :  4 , Col :  4
Paths :  20
/*
Kotlin Program
Count the number of ways to traverse a Matrix
*/
class Counting
{
// Count matrix path
fun countPath(i: Int, j: Int, row: Int, col: Int): Int
{
if (i == row && col == j)
{
return 1;
}
else if (i <= row && j <= col)
{
//  Count matrix path recursively
return this.countPath(i + 1, j, row, col) +
this.countPath(i, j + 1, row, col);
}
else
{
return 0;
}
}
// Handles the request to count path of the matrix
fun paths(row: Int, col: Int): Unit
{
if (row <= 0 || col <= 0)
{
return;
}
// Display given rows and columns
print(" Row : " + row + ", Col : " + col);
// Display calculated result
print("\n Paths : " + this.countPath(0, 0, row - 1, col - 1) + "\n\n");
}
}
fun main(args: Array < String > ): Unit
{
// Test Cases
}

#### input

Row : 9, Col : 7
Paths : 3003

Row : 3, Col : 7
Paths : 28

Row : 4, Col : 4
Paths : 20

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.