# Count digits present in each element of a given Matrix

• Last Updated : 21 Apr, 2021

Given a matrix arr[][] of dimensions M * N, the task is to count the number of digits of every element present in the given matrix.

Examples:

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

Input: arr[][] = { { 27, 173, 5 }, { 21, 6, 624 }, { 5, 321, 49 } }
Output:
2 3 1
2 1 3
1 3 2

Input: arr[][] = { {11, 12, 33 }, { 64, 57, 61 }, { 74, 88, 39 } }
Output:
2 2 2
2 2 2
2 2 2

Approach: The idea to solve this problem is to traverse the given matrix and for every index of the matrix, count the number of digits of the number present at that index using the following expression:

Number of digits present in any value X is given by floor(log10(X))+1.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach` `#include ``using` `namespace` `std;` `const` `int` `M = 3;``const` `int` `N = 3;` `// Function to count the number of digits``// in each element of the given matrix``void` `countDigit(``int` `arr[M][N])``{` `    ``// Traverse each row of arr[][]``    ``for` `(``int` `i = 0; i < M; i++) {` `        ``// Traverse each column of arr[][]``        ``for` `(``int` `j = 0; j < N; j++) {` `            ``// Store the current matrix element``            ``int` `X = arr[i][j];` `            ``// Count the number of digits``            ``int` `d = ``floor``(``log10``(X) * 1.0) + 1;` `            ``// Print the result``            ``cout << d << ``" "``;``        ``}` `        ``cout << endl;``    ``}``}` `// Driver Code``int` `main()``{``    ``// Given matrix``    ``int` `arr[] = { { 27, 173, 5 },``                     ``{ 21, 6, 624 },``                     ``{ 5, 321, 49 } };` `    ``countDigit(arr);``    ``return` `0;``}`

## Java

 `// Java program for the above approach``import` `java.util.*;``class` `GFG``{` `static` `int` `M = ``3``;``static` `int` `N = ``3``;` `// Function to count the number of digits``// in each element of the given matrix``static` `void` `countDigit(``int` `arr[][])``{` `    ``// Traverse each row of arr[][]``    ``for` `(``int` `i = ``0``; i < M; i++)``    ``{` `        ``// Traverse each column of arr[][]``        ``for` `(``int` `j = ``0``; j < N; j++)``        ``{` `            ``// Store the current matrix element``            ``int` `X = arr[i][j];` `            ``// Count the number of digits``            ``int` `d = (``int``) (Math.floor(Math.log10(X) * ``1.0``) + ``1``);` `            ``// Print the result``            ``System.out.print(d+ ``" "``);``        ``}``        ``System.out.println();``    ``}``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``  ` `    ``// Given matrix``    ``int` `arr[][] = { { ``27``, ``173``, ``5` `},``                     ``{ ``21``, ``6``, ``624` `},``                     ``{ ``5``, ``321``, ``49` `} };``    ``countDigit(arr);``}``}` `// This code is contributed by Princi Singh`

## Python3

 `# Python3 program for the above approach``from` `math ``import` `floor, log10` `M ``=` `3``N ``=` `3` `# Function to count the number of digits``# in each element of the given matrix``def` `countDigit(arr):``    ` `    ``# Traverse each row of arr[][]``    ``for` `i ``in` `range``(M):` `        ``# Traverse each column of arr[][]``        ``for` `j ``in` `range``(N):` `            ``# Store the current matrix element``            ``X ``=` `arr[i][j]` `            ``# Count the number of digits``            ``d ``=` `floor(log10(X) ``*` `1.0``) ``+` `1` `            ``# Print the result``            ``print``(d, end ``=` `" "``)` `        ``print``()` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ` `    ``# Given matrix``    ``arr ``=` `[ [ ``27``, ``173``, ``5` `],``            ``[ ``21``, ``6``, ``624` `],``            ``[ ``5``, ``321``, ``49` `] ]` `    ``countDigit(arr)` `# This code is contributed by mohit kumar 29`

## C#

 `// C# program to implement``// the above approach ``using` `System;``class` `GFG``{``     ` `static` `int` `M = 3;``static` `int` `N = 3;`` ` `// Function to count the number of digits``// in each element of the given matrix``static` `void` `countDigit(``int``[,] arr)``{`` ` `    ``// Traverse each row of arr[][]``    ``for` `(``int` `i = 0; i < M; i++)``    ``{`` ` `        ``// Traverse each column of arr[][]``        ``for` `(``int` `j = 0; j < N; j++)``        ``{`` ` `            ``// Store the current matrix element``            ``int` `X = arr[i, j];`` ` `            ``// Count the number of digits``            ``int` `d = (``int``) (Math.Floor(Math.Log10(X) * 1.0) + 1);`` ` `            ``// Print the result``            ``Console.Write(d + ``" "``);``        ``}``        ``Console.WriteLine();``    ``}``}`` ` `// Driver Code``public` `static` `void` `Main()``{``  ` `    ``// Given matrix``    ``int``[,] arr = { { 27, 173, 5 },``                     ``{ 21, 6, 624 },``                     ``{ 5, 321, 49 } };``    ``countDigit(arr);``}``}` `// This code is contributed by susmitakundugoaldanga`

## Javascript

 ``
Output:
```2 3 1
2 1 3
1 3 2```

Time Complexity: O(M * N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up