📜  小数点后两位数除的位数

📅  最后修改于: 2021-05-04 13:21:34             🧑  作者: Mango

给定两个整数ab 。任务是找到a / b中小数点之前的位数。
例子:

天真的方法:将两个数字相除,然后找到除法中的数字。取除法的绝对值以找到位数。
下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to return the number of digits
// before the decimal in a / b
int countDigits(int a, int b)
{
    int count = 0;
 
    // Absolute value of a / b
    int p = abs(a / b);
 
    // If result is 0
    if (p == 0)
        return 1;
 
    // Count number of digits in the result
    while (p > 0) {
        count++;
        p = p / 10;
    }
 
    // Return the required count of digits
    return count;
}
 
// Driver code
int main()
{
    int a = 100;
    int b = 10;
    cout << countDigits(a, b);
 
    return 0;
}


Java
// Java implementation of the approach
class GFG {
 
    // Function to return the number of digits
    // before the decimal in a / b
    static int countDigits(int a, int b)
    {
        int count = 0;
 
        // Absolute value of a / b
        int p = Math.abs(a / b);
 
        // If result is 0
        if (p == 0)
            return 1;
 
        // Count number of digits in the result
        while (p > 0) {
            count++;
            p = p / 10;
        }
 
        // Return the required count of digits
        return count;
    }
 
    // Driver code
    public static void main(String args[])
    {
        int a = 100;
        int b = 10;
        System.out.print(countDigits(a, b));
    }
}


Python
# Python 3 implementation of the approach
 
# Function to return the number of digits
# before the decimal in a / b
def countDigits(a, b):
    count = 0
     
    # Absolute value of a / b
    p = abs(a // b)
     
    # If result is 0
    if (p == 0):
        return 1
     
    # Count number of digits in the result
    while (p > 0):
        count = count + 1
        p = p // 10
     
     
    # Return the required count of digits
    return count
 
# Driver code
a = 100
b = 10
print(countDigits(a, b))


C#
// C# implementation of the approach
using System;
class GFG {
 
    // Function to return the number of digits
    // before the decimal in a / b
    static int countDigits(int a, int b)
    {
        int count = 0;
 
        // Absolute value of a / b
        int p = Math.Abs(a / b);
 
        // If result is 0
        if (p == 0)
            return 1;
 
        // Count number of digits in the result
        while (p > 0) {
            count++;
            p = p / 10;
        }
 
        // Return the required count of digits
        return count;
    }
 
    // Driver code
    public static void Main()
    {
        int a = 100;
        int b = 10;
        Console.Write(countDigits(a, b));
    }
}


PHP
 0) {
        $count++;
        $p = (int)($p / 10);
    }
     
    // Return the required count of digits
    return $count;
}
 
// Driver code
$a = 100;
$b = 10;
echo countDigits($a, $b);
?>


Javascript


C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to return the number of digits
// before the decimal in a / b
int countDigits(int a, int b)
{
    // Return the required count of digits
    return floor(log10(abs(a)) - log10(abs(b))) + 1;
}
 
// Driver code
int main()
{
    int a = 100;
    int b = 10;
    cout << countDigits(a, b);
 
    return 0;
}


Java
// Java implementation of the approach
class GFG {
 
    // Function to return the number of digits
    // before the decimal in a / b
    public static int countDigits(int a, int b)
    {
        double digits = Math.log10(Math.abs(a))
                        - Math.log10(Math.abs(b)) + 1;
 
        // Return the required count of digits
        return (int)Math.floor(digits);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int a = 100;
        int b = 10;
        System.out.print(countDigits(a, b));
    }
}


Python
# Python3 implementation of the approach
import math
 
# Function to return the number of digits
# before the decimal in a / b
def countDigits(a, b):
     
    # Return the required count of digits    
    return math.floor(math.log10(abs(a)) -
                math.log10(abs(b))) + 1
 
 
# Driver code
a = 100
b = 10
print(countDigits(a, b))


C#
// C# implementation of the approach
using System;
class GFG {
 
    // Function to return the number of digits
    // before the decimal in a / b
    public static int countDigits(int a, int b)
    {
        double digits = Math.Log10(Math.Abs(a))
                        - Math.Log10(Math.Abs(b)) + 1;
 
        // Return the required count of digits
        return (int)Math.Floor(digits);
    }
 
    // Driver code
    static void Main()
    {
        int a = 100;
        int b = 10;
        Console.Write(countDigits(a, b));
    }
}


PHP


Javascript


输出:
2

高效的方法:要计算a / b中的位数,我们可以使用以下公式:

在这里,两个数字都必须是正整数。为此,我们可以取ab的绝对值。
下面是上述方法的实现:

C++

// C++ implementation of the approach
#include 
using namespace std;
 
// Function to return the number of digits
// before the decimal in a / b
int countDigits(int a, int b)
{
    // Return the required count of digits
    return floor(log10(abs(a)) - log10(abs(b))) + 1;
}
 
// Driver code
int main()
{
    int a = 100;
    int b = 10;
    cout << countDigits(a, b);
 
    return 0;
}

Java

// Java implementation of the approach
class GFG {
 
    // Function to return the number of digits
    // before the decimal in a / b
    public static int countDigits(int a, int b)
    {
        double digits = Math.log10(Math.abs(a))
                        - Math.log10(Math.abs(b)) + 1;
 
        // Return the required count of digits
        return (int)Math.floor(digits);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int a = 100;
        int b = 10;
        System.out.print(countDigits(a, b));
    }
}

Python

# Python3 implementation of the approach
import math
 
# Function to return the number of digits
# before the decimal in a / b
def countDigits(a, b):
     
    # Return the required count of digits    
    return math.floor(math.log10(abs(a)) -
                math.log10(abs(b))) + 1
 
 
# Driver code
a = 100
b = 10
print(countDigits(a, b))

C#

// C# implementation of the approach
using System;
class GFG {
 
    // Function to return the number of digits
    // before the decimal in a / b
    public static int countDigits(int a, int b)
    {
        double digits = Math.Log10(Math.Abs(a))
                        - Math.Log10(Math.Abs(b)) + 1;
 
        // Return the required count of digits
        return (int)Math.Floor(digits);
    }
 
    // Driver code
    static void Main()
    {
        int a = 100;
        int b = 10;
        Console.Write(countDigits(a, b));
    }
}

的PHP


Java脚本


输出:
2