Given two integers A and B, the task is to calculate the number of pairs (a, b) such that 1 ? a ? A, 1 ? b ? B and the equation (a * b) + a + b = concat(a, b) is true where conc(a, b) is the concatenation of a and b (for example, conc(12, 23) = 1223, conc(100, 11) = 10011). Note that a and b should not contain any leading zeroes.
Examples:
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.
Approach: It can be observed that the above (a * b + a + b = conc(a, b)) will only be satisfied when the digits of an integer ? b contains only 9. Simply, calculate the number of digits (? b) containing only 9 and multiply with the integer a.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int countPair( int a, int b)
{
string s = to_string(b);
int i;
for (i = 0; i < s.length(); i++) {
if (s[i] != '9' )
break ;
}
int result;
if (i == s.length())
result = a * s.length();
else
result = a * (s.length() - 1);
return result;
}
int main()
{
int a = 5, b = 101;
cout << countPair(a, b);
return 0;
}
|
Java
class GFG
{
static int countPair( int a, int b)
{
String s = String.valueOf(b);
int i;
for (i = 0 ; i < s.length(); i++)
{
if (s.charAt(i) != '9' )
break ;
}
int result;
if (i == s.length())
result = a * s.length();
else
result = a * (s.length() - 1 );
return result;
}
public static void main(String[] args)
{
int a = 5 , b = 101 ;
System.out.print(countPair(a, b));
}
}
|
Python3
def countPair(a, b):
s = str (b)
i = 0
while i < ( len (s)):
if (s[i] ! = '9' ):
break
i + = 1
result = 0
if (i = = len (s)):
result = a * len (s)
else :
result = a * ( len (s) - 1 )
return result
a = 5
b = 101
print (countPair(a, b))
|
C#
using System;
class GFG
{
static int countPair( int a, int b)
{
String s = String.Join( "" , b);
int i;
for (i = 0; i < s.Length; i++)
{
if (s[i] != '9' )
break ;
}
int result;
if (i == s.Length)
result = a * s.Length;
else
result = a * (s.Length - 1);
return result;
}
public static void Main(String[] args)
{
int a = 5, b = 101;
Console.Write(countPair(a, b));
}
}
|
Javascript
<script>
function countPair(a, b)
{
var s = (b.toString());
var i;
for (i = 0; i < s.length; i++)
{
if (s[i] != '9')
break ;
}
var result;
if (i == s.length)
result = a * s.length;
else
result = a * (s.length - 1);
return result;
}
var a = 5, b = 101;
document.write(countPair(a, b));
</script>
|
Time Complexity: O(b)
Auxiliary Space: O(1)