Dados dos números A y B , la tarea es encontrar el número de pares (X, Y) en el rango [A, B] , tal que (X * Y) + (X + Y) sea igual al número formado por concatenación de X e Y
Ejemplos:
Entrada: A = 1, B = 9
Salida: 9
Explicación:
Los pares (1, 9), (2, 9), (3, 9), (4, 9), (5, 9), (6, 9 ), (7, 9), (8, 9) y (9, 9) son los pares requeridos.
Entrada: A = 4, B = 10
Salida: 7
Explicación: Los pares (4, 9), (5, 9), (6, 9), (7, 9), (8, 9), (9, 9 ) y (10, 9) cumplen la condición requerida.
Enfoque:
Podemos observar que cualquier número de la forma [9, 99, 999, 9999, ….] satisface la condición con todos los demás valores.
Ilustración:
Si Y = 9, la condición requerida se cumple para todos los valores de X.
{1*9 + (1 + 9) = 19, 2*9 + (2 + 9) = 29, ……….. 11* 9 + (11 + 9) = 119 …..
Similarmente, para Y = 99, 1*99 + 1 + 99 = 199, 2*99 + 2 + 99 = 299, ………
Por lo tanto, siga los pasos a continuación para resolver los problemas:
- Cuente el número de valores posibles de Y de la forma {9, 99, 999, 9999, ….} en el rango [A, B] y guárdelo en countY
- Cuente el número de valores posibles de X en el rango [A, B] como countX
countX = (B - A + 1)
- La cuenta requerida será el producto de la cuenta posible de X e Y, es decir
answer = countX * countY
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to count // all the possible pairs // with X*Y + (X + Y) equal to // number formed by // concatenating X and Y #include <bits/stdc++.h> using namespace std; // Function for counting pairs int countPairs(int A, int B) { int countY = 0, countX = (B - A) + 1, next_val = 9; // Count possible values // of Y while (next_val <= B) { if (next_val >= A) { countY += 1; } next_val = next_val * 10 + 9; } return (countX * countY); } // Driver Code int main() { int A = 1; int B = 16; cout << countPairs(A, B); return 0; }
Java
// Java program to count // all the possible pairs // with X*Y + (X + Y) equal to // number formed by // concatenating X and Y import java.util.*; class GFG{ // Function for counting pairs static int countPairs(int A, int B) { int countY = 0, countX = (B - A) + 1, next_val = 9; // Count possible values // of Y while (next_val <= B) { if (next_val >= A) { countY += 1; } next_val = next_val * 10 + 9; } return (countX * countY); } // Driver Code public static void main(String args[]) { int A = 1; int B = 16; System.out.print(countPairs(A, B)); } } // This code is contributed by Code_Mech
Python3
# Python3 program to count # all the possible pairs # with X*Y + (X + Y) equal to # number formed by # concatenating X and Y # Function for counting pairs def countPairs(A, B): countY = 0 countX = (B - A) + 1 next_val = 9 # Count possible values # of Y while (next_val <= B): if (next_val >= A): countY += 1 next_val = next_val * 10 + 9 return (countX * countY) # Driver Code if __name__ == '__main__': A = 1 B = 16 print(countPairs(A, B)) # This code is contributed by mohit kumar 29
C#
// C# program to count // all the possible pairs // with X*Y + (X + Y) equal to // number formed by // concatenating X and Y using System; class GFG{ // Function for counting pairs static int countPairs(int A, int B) { int countY = 0, countX = (B - A) + 1, next_val = 9; // Count possible values // of Y while (next_val <= B) { if (next_val >= A) { countY += 1; } next_val = next_val * 10 + 9; } return (countX * countY); } // Driver Code public static void Main() { int A = 1; int B = 16; Console.Write(countPairs(A, B)); } } // This code is contributed by Akanksha_Rai
Javascript
<script> // javascript program to count // all the possible pairs // with X*Y + (X + Y) equal to // number formed by // concatenating X and Y // Function for counting pairs function countPairs(A , B) { var countY = 0, countX = (B - A) + 1, next_val = 9; // Count possible values // of Y while (next_val <= B) { if (next_val >= A) { countY += 1; } next_val = next_val * 10 + 9; } return (countX * countY); } // Driver Code var A = 1; var B = 16; document.write(countPairs(A, B)); // This code is contributed by todaysgaurav </script>
16
Complejidad de tiempo: O(log 10 (B))
Complejidad de espacio: O(1)
Publicación traducida automáticamente
Artículo escrito por himanshu77 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA