📜  满足给定条件的对数

📅  最后修改于: 2021-05-08 17:45:55             🧑  作者: Mango

给定两个整数AB ,任务是计算对(a,b)的对数,以使1≤a≤A,1≤b≤B以及等式(a * b)+ a + b = concat(a ,b)为true,其中conc(a,b)是a和b的串联(例如,conc(12,23)= 1223,conc(100,11)= 10011)。请注意ab不应包含任何前导零。

例子:

方法:可以观察到,只有当整数≤b的数字仅包含9时,才能满足上述(a * b + a + b = conc(a,b)) 。只需计算仅包含9的位数(≤b),然后乘以整数a

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
  
// Function to return the number of
// pairs satisfying the equation
int countPair(int a, int b)
{
    // Converting integer b to string
    // by using to_string function
    string s = to_string(b);
  
    // Loop to check if all the digits
    // of b are 9 or not
    int i;
    for (i = 0; i < s.length(); i++) {
  
        // If '9' doesn't appear
        // then break the loop
        if (s[i] != '9')
            break;
    }
  
    int result;
  
    // If all the digits of b contain 9
    // then multiply a with string length
    // else multiply a with string length - 1
    if (i == s.length())
        result = a * s.length();
    else
        result = a * (s.length() - 1);
  
    // Return the number of pairs
    return result;
}
  
// Driver code
int main()
{
    int a = 5, b = 101;
  
    cout << countPair(a, b);
  
    return 0;
}


Java
// Java implementation of the approach
class GFG
{
  
// Function to return the number of
// pairs satisfying the equation
static int countPair(int a, int b)
{
    // Converting integer b to String
    // by using to_String function
    String s = String.valueOf(b);
  
    // Loop to check if all the digits
    // of b are 9 or not
    int i;
    for (i = 0; i < s.length(); i++)
    {
  
        // If '9' doesn't appear
        // then break the loop
        if (s.charAt(i) != '9')
            break;
    }
  
    int result;
  
    // If all the digits of b contain 9
    // then multiply a with String length
    // else multiply a with String length - 1
    if (i == s.length())
        result = a * s.length();
    else
        result = a * (s.length() - 1);
  
    // Return the number of pairs
    return result;
}
  
// Driver code
public static void main(String[] args)
{
    int a = 5, b = 101;
  
    System.out.print(countPair(a, b));
}
}
  
// This code is contributed by PrinciRaj1992


Python
# Python3 implementation of the approach
  
# Function to return the number of
# pairs satisfying the equation
def countPair(a, b):
      
    # Converting integer b to string
    # by using to_function
    s = str(b)
  
    # Loop to check if all the digits
    # of b are 9 or not
    i = 0
    while i < (len(s)):
  
        # If '9' doesn't appear
        # then break the loop
        if (s[i] != '9'):
            break
        i += 1
  
    result = 0
  
    # If all the digits of b contain 9
    # then multiply a with length
    # else multiply a with length - 1
    if (i == len(s)):
        result = a * len(s)
    else:
        result = a * (len(s) - 1)
  
    # Return the number of pairs
    return result
  
# Driver code
a = 5
b = 101
  
print(countPair(a, b))
  
# This code is contributed by mohit kumar 29


C#
// C# implementation of the approach
using System;
  
class GFG
{
  
// Function to return the number of
// pairs satisfying the equation
static int countPair(int a, int b)
{
    // Converting integer b to String
    // by using to_String function
    String s = String.Join("", b);
  
    // Loop to check if all the digits
    // of b are 9 or not
    int i;
    for (i = 0; i < s.Length; i++)
    {
  
        // If '9' doesn't appear
        // then break the loop
        if (s[i] != '9')
            break;
    }
  
    int result;
  
    // If all the digits of b contain 9
    // then multiply a with String length
    // else multiply a with String length - 1
    if (i == s.Length)
        result = a * s.Length;
    else
        result = a * (s.Length - 1);
  
    // Return the number of pairs
    return result;
}
  
// Driver code
public static void Main(String[] args)
{
    int a = 5, b = 101;
  
    Console.Write(countPair(a, b));
}
}
  
// This code is contributed by Rajput-Ji


输出:
10