Número de dígitos en el producto de dos números

Dados dos enteros a y b . El problema es encontrar el número de dígitos en el producto de estos dos números enteros.
Ejemplos: 
 

Input : a = 12, b = 4
Output : 2
12 * 4 = 48 (2 digits)

Input : a = 33, b = -24
Output : 3
33 * -24 = -792 (3 digits)

Enfoque ingenuo: multiplique los dos números y luego, utilizando la construcción de bucle, encuentre la cantidad de dígitos en el producto. Tome el valor absoluto del producto para encontrar el número de dígitos.
 

C++

// C++ implementation to count number of digits
// in the product of two numbers
#include <bits/stdc++.h>
 
using namespace std;
 
// function to count number of digits
// in the product of two numbers
int countDigits(int a, int b)
{
    int count = 0;   
     
    // absolute value of the
    // product of two numbers
    int p = abs(a*b);
     
    // if product is 0
    if (p == 0)   
        return 1;
     
    // count number of digits in the product 'p'   
    while (p > 0)   
    {
        count++;
        p = p / 10;
    }
     
    // required count of digits   
    return count;
}
 
// Driver program to test above
int main()
{
    int a = 33;
    int b = -24;
    cout << "Number of digits = "
         << countDigits(a,b);
    return 0;
}

Java

// Java implementation to count
// number of digits in the product
// of two numbers
import java.io.*;
import java.math.*;
 
class GFG {
     
    // function to count number of digits
    // in the product of two numbers
    static int countDigits(int a, int b)
    {
        int count = 0;
         
        // absolute value of the
        // product of two numbers
        int p = Math.abs(a * b);
         
        // if product is 0
        if (p == 0)
            return 1;
         
        // count number of digits in
        // the product 'p'
        while (p > 0)
        {
            count++;
            p = p / 10;
        }
         
        // required count of digits
        return count;
    }
     
    // Driver program to test above
    public static void main(String args[])
    {
        int a = 33;
        int b = -24;
        System.out.println("Number of digits = "
                           + countDigits(a, b));
    }
}
 
/*This code is contributed by Nikita Tiwari.*/

Python3

# Python 3 implementation to count
# number of digits in the product
# of two numbers
 
# function to count number of digits
# in the product of two numbers
def countDigits(a, b) :
    count = 0
     
    # absolute value of the
    # product of two numbers
    p = abs(a * b)
     
    # if product is 0
    if (p == 0) :
        return 1
     
    # count number of digits
    # in the product 'p'
    while (p > 0) :
        count = count + 1
        p = p // 10
     
     
    # required count of digits
    return count
 
 
# Driver program to test above
a = 33
b = -24
print("Number of digits = ",
       countDigits(a,b))
 
# This code is contributed by Nikita Tiwari.

C#

// C# implementation to count
// number of digits in the product
// of two numbers
using System;
 
class GFG {
     
    // function to count number of digits
    // in the product of two numbers
    static int countDigits(int a, int b)
    {
        int count = 0;
 
        // absolute value of the
        // product of two numbers
        int p = Math.Abs(a * b);
 
        // if product is 0
        if (p == 0)
            return 1;
 
        // count number of digits in
        // the product 'p'
        while (p > 0) {
            count++;
            p = p / 10;
        }
 
        // required count of digits
        return count;
    }
 
    // Driver program to test above
    public static void Main()
    {
        int a = 33;
        int b = -24;
        Console.WriteLine("Number of digits = " +
                              countDigits(a, b));
    }
}
 
// This code is contributed by Sam007

PHP

<?php
// PHP implementation to count
// number of digits in the
// product of two numbers
 
// function to count number
// of digits in the product
// of two numbers
function countDigits($a, $b)
{
    $count = 0;
     
    // absolute value of the
    // product of two numbers
    $p = abs($a * $b);
     
    // if product is 0
    if ($p == 0)
        return 1;
     
    // count number of digits
    // in the product 'p'
    while ($p > 0)
    {
        $count++;
        $p = (int)($p / 10);
    }
     
    // required count of digits
    return $count;
}
 
// Driver Code
$a = 33;
$b = -24;
echo "Number of digits = " .
        countDigits($a, $b);
 
// This code is contributed by mits
?>

Javascript

<script>
    // Javascript implementation to count number of digits
    // in the product of two numbers
     
    // function to count number of digits
    // in the product of two numbers
    function countDigits(a, b)
    {
        let count = 0;   
 
        // absolute value of the
        // product of two numbers
        let p = Math.abs(a*b);
 
        // if product is 0
        if (p == 0)   
            return 1;
 
        // count number of digits in the product 'p'   
        while (p > 0)   
        {
            count++;
            p = parseInt(p / 10, 10);
        }
 
        // required count of digits   
        return count;
    }
     
    let a = 33;
    let b = -24;
    document.write("Number of digits = " + countDigits(a,b));
 
// This code is contributed by divyeshrabadiya07.
</script>

Producción: 
 

Number of digits = 3

Enfoque eficiente: para contar la cantidad de dígitos en el producto de dos números, podemos usar la fórmula que se proporciona a continuación: 
 

                count = floor(log10(a) + log10(b)) + 1

Aquí ambos números deben ser enteros positivos. Para esto podemos tomar los valores absolutos de a y b
 

C++

// C++ implementation to count number of digits
// in the product of two numbers
#include <bits/stdc++.h>
 
using namespace std;
 
// function to count number of digits
// in the product of two numbers
int countDigits(int a, int b)
{
    // if either of the number is 0, then
    // product will be 0
    if (a == 0 || b == 0)
        return 1;
         
    // required count of digits           
    return floor(log10(abs(a)) + log10(abs(b))) + 1;   
}
 
// Driver program to test above
int main()
{
    int a = 33;
    int b = -24;
    cout << countDigits(a,b);
    return 0;
}

Java

// JAVA Code for Number of digits
// in the product of two numbers
class GFG {
     
    // function to count number of digits
    // in the product of two numbers
    public static int countDigits(int a, int b)
    {
        // if either of the number is 0, then
        // product will be 0
        if (a == 0 || b == 0)
            return 1;
              
        // required count of digits           
        return (int)Math.floor(Math.log10(Math.abs(a)) +
                            Math.log10(Math.abs(b))) + 1;   
    }
     
    /* Driver program to test above function */
    public static void main(String[] args)
    {
        int a = 33;
        int b = -24;
        System.out.print(countDigits(a,b));
    }
}
// This code is contributed by Arnav Kr. Mandal.

Python3

# Python 3 implementation to count
# number of digits in the product
# of two numbers
import math
 
# function to count number of digits
# in the product of two numbers
def countDigits(a, b) :
     
    # if either of the number is 0,
    # then product will be 0
    if (a == 0 or b == 0) :
        return 1
         
    # required count of digits        
    return math.floor(math.log10(abs(a)) +
                   math.log10(abs(b))) + 1
 
 
# Driver program to test above
a = 33
b = -24
print(countDigits(a, b))
 
# This code is contributed by Nikita Tiwari.

C#

// C# Code for Number of digits
// in the product of two numbers
using System;
 
class GFG {
     
    // function to count number of
    // digits in the product of two
    // numbers
    public static int countDigits(int a,
                                  int b)
    {
        // if either of the number is 0,
        // then product will be 0
        if (a == 0 || b == 0)
            return 1;
             
        // required count of digits        
        return (int)Math.Floor(
                 Math.Log10(Math.Abs(a))
          + Math.Log10(Math.Abs(b))) + 1;
    }
     
    // Driver code
    static void Main()
    {
        int a = 33;
        int b = -24;
        Console.Write(countDigits(a, b));
         
    }
}
 
// This code is contributed by Sam007

PHP

<?php
// PHP implementation to count
// number of digits in the product
// of two numbers
 
// function to count number of digits
// in the product of two numbers
function countDigits($a, $b)
{
    // if either of the number is
    // 0, then product will be 0
    if ($a == 0 or $b == 0)
        return 1;
         
    // required count of digits    
    return floor(log10(abs($a)) +
                 log10(abs($b))) + 1;
}
 
// Driver Code
$a = 33;
$b = -24;
echo countDigits($a, $b);
 
// This code is contributed by mits
?>

Javascript

<script>
 
// Javascript implementation to count number of digits
// in the product of two numbers
 
// function to count number of digits
// in the product of two numbers
function countDigits(a, b)
{
    // if either of the number is 0, then
    // product will be 0
    if (a == 0 || b == 0)
        return 1;
         
    // required count of digits           
    return Math.floor(Math.log10(Math.abs(a)) + Math.log10(Math.abs(b))) + 1;   
}
 
// Driver program to test above
    let a = 33;
    let b = -24;
    document.write(countDigits(a,b));
 
// This code is contributed by Mayank Tyagi
 
</script>

Producción: 
 

3

Este artículo es una contribución de Ayush Jauhari . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *