给定两个整数A和B ,任务是计算对(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)。请注意, a和b不应包含任何前导零。
例子:
Input: A = 1, B = 12
Output: 1
There exists only one pair (1, 9) satisfying
the equation ((1 * 9) + 1 + 9 = 19)
Input: A = 2, B = 8
Output: 0
There doesn’t exist any pair satisfying the equation.
方法:可以观察到,只有当整数≤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