给定两个整数a和b 。问题是要找到这两个整数的乘积中的位数。
例子:
Input : a = 12, b = 4
Output : 2
12 * 4 = 48 (2 digits)
Input : a = 33, b = -24
Output : 3
33 * -24 = -792 (3 digits)
天真的方法:将两个数字相乘,然后使用循环构造查找乘积中的数字位数。取乘积的绝对值以查找数字位数。
C++
// C++ implementation to count number of digits
// in the product of two numbers
#include
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
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
C++
// C++ implementation to count number of digits
// in the product of two numbers
#include
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
Javascript
输出:
Number of digits = 3
高效的方法:要计算两个数字的乘积中的位数,我们可以使用下面给出的公式:
count = floor(log10(a) + log10(b)) + 1
在这里,两个数字都必须是正整数。为此,我们可以取a和b的绝对值。
C++
// C++ implementation to count number of digits
// in the product of two numbers
#include
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
Java脚本
输出:
3