Open In App

Count digits present in each element of a given Matrix

Last Updated : 07 Mar, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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 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 <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 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[][3] = { { 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




<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 matrix
function 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>


Output: 

2 3 1 
2 1 3 
1 3 2

 

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads