Count digits present in each element of a given Matrix - GeeksforGeeks

07 Mar, 2022
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:
Input: arr[][] = { { 27, 173, 5 }, { 21, 6, 624 }, { 5, 321, 49 } }Output: 2 3 12 1 31 3 2
Input: arr[][] = { {11, 12, 33 }, { 64, 57, 61 }, { 74, 88, 39 } }Output: 2 2 22 2 22 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++
Java
Python3
C#
Javascript
// C++ program for the above approach #include <bits/stdc++.h>using namespace std; const int M = 3;const int N = 3; // Function to count the number of digits// in each element of the given matrixvoid 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 Codeint main(){    // Given matrix    int arr[][3] = { { 27, 173, 5 },                     { 21, 6, 624 },                     { 5, 321, 49 } };     countDigit(arr);    return 0;}
// Java program for the above approachimport 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 matrixstatic 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 Codepublic 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 program for the above approachfrom math import floor, log10 M = 3N = 3 # Function to count the number of digits# in each element of the given matrixdef 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 Codeif __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# 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 matrixstatic 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 Codepublic static void Main(){       // Given matrix    int[,] arr = { { 27, 173, 5 },                     { 21, 6, 624 },                     { 5, 321, 49 } };    countDigit(arr);}} // This code is contributed by susmitakundugoaldanga
<script> // JavaScript program to implement// the above approach let M = 3;let N = 3;  // Function to count the number of digits// in each element of the given matrixfunction countDigit(arr){      // Traverse each row of arr[][]    for (let i = 0; i < M; i++)    {          // Traverse each column of arr[][]        for (let j = 0; j < N; j++)        {              // Store the current matrix element            let X = arr[i][j];              // Count the number of digits            let d =  (Math.floor(Math.log10(X) * 1.0) + 1);              // Print the result            document.write(d+ " ");        }        document.write("<br/>");    }}       // Driver code             // Given matrix    let arr = [[ 27, 173, 5 ],                     [ 21, 6, 624 ],                     [ 5, 321, 49 ]];    countDigit(arr); </script>
2 3 1 
2 1 3 
1 3 2
 
Time Complexity: O(M * N)Auxiliary Space: O(1)
mohit kumar 29
princi singh
susmitakundugoaldanga
target_2
simranarora5sos
number-digits
Mathematical
Matrix
School Programming
Mathematical
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Segment Tree | Set 1 (Sum of given range)
Modular multiplicative inverse
Count all possible paths from top left to bottom right of a mXn matrix
Fizz Buzz Implementation
Matrix Chain Multiplication | DP-8
Program to find largest element in an array
Print a given matrix in spiral form
Rat in a Maze | Backtracking-2
Maximum size square sub-matrix with all 1s