📌  相关文章
📜  计算给定矩阵的每个元素中出现的数字

📅  最后修改于: 2021-04-29 10:02:51             🧑  作者: Mango

给定维度为M * N的矩阵arr [] [] ,任务是计算给定矩阵中每个元素的位数。

例子:

方法:解决此问题的想法是遍历给定的矩阵,对于矩阵的每个索引,使用以下表达式对存在于该索引处的数字的位数进行计数:

下面是上述方法的实现:

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[][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


输出:
2 3 1 
2 1 3 
1 3 2

时间复杂度: O(M * N)
辅助空间: O(1)