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 2Input: 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++ 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 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 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# 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 |
<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> |
2 3 1 2 1 3 1 3 2
Time Complexity: O(M * N)
Auxiliary Space: O(1)