Dados dos enteros A y B , convierta A en B realizando una de las siguientes operaciones cualquier número de veces:
- UN = UN + K
- A = A – K , donde K pertenece a [1, 10]
La tarea es encontrar el número mínimo de operaciones requeridas para convertir A en B utilizando las operaciones anteriores.
Ejemplos:
Entrada: A = 13, B = 42
Salida: 3
Explicación:
Se puede realizar la siguiente secuencia de movimientos: 13 → 23 → 32 → 42 (suma 10, suma 9, suma 10).Entrada: A = 18, B = 4
Salida: 2
Explicación:
Se puede realizar la siguiente secuencia de movimientos: 18 → 10 → 4 (restar 8, restar 6).
Enfoque: La idea es simplemente calcular el número requerido de movimientos dividiendo la diferencia absoluta de A y B por todos los números en el rango [1…10] y sumándolo a la variable resultante. Siga los pasos a continuación para resolver el problema:
- Inicialice una variable required_moves para almacenar el recuento mínimo de movimientos necesarios.
- Encuentre la diferencia absoluta de A y B.
- Iterar sobre el rango [1, 10] y realizar las siguientes operaciones:
- Divide el número por i y súmalo a la variable resultante.
- Calcule el módulo de la diferencia absoluta por i .
- Finalmente, imprime el valor de required_moves .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to find minimum number // of moves to obtained B from A void convertBfromA(int a, int b) { // Stores the minimum // number of moves int moves = 0; // Absolute difference int x = abs(a - b); // K is in range [0, 10] for (int i = 10; i > 0; i--) { moves += x / i; x = x % i; } // Print the required moves cout << moves << " "; } // Driver Code int main() { int A = 188, B = 4; convertBfromA(A, B); return 0; }
Java
// Java program for the above approach import java.io.*; class GFG{ // Function to find minimum number // of moves to obtained B from A static void convertBfromA(int a, int b) { // Stores the minimum // number of moves int moves = 0; // Absolute difference int x = Math.abs(a - b); // K is in range [0, 10] for(int i = 10; i > 0; i--) { moves += x / i; x = x % i; } // Print the required moves System.out.print(moves + " "); } // Driver Code public static void main (String[] args) { int A = 188, B = 4; convertBfromA(A, B); } } // This code is contributed by code_hunt
Python3
# Python3 program for the above approach # Function to find minimum number # of moves to obtained B from A def convertBfromA(a, b): # Stores the minimum # number of moves moves = 0 # Absolute difference x = abs(a - b) # K is in range [0, 10] for i in range(10, 0, -1): moves += x // i x = x % i # Print the required moves print(moves, end = " ") # Driver Code A = 188 B = 4 convertBfromA(A, B) # This code is contributed by code_hunt
C#
// C# program for the above approach using System; class GFG{ // Function to find minimum number // of moves to obtained B from A static void convertBfromA(int a, int b) { // Stores the minimum // number of moves int moves = 0; // Absolute difference int x = Math.Abs(a - b); // K is in range [0, 10] for(int i = 10; i > 0; i--) { moves += x / i; x = x % i; } // Print the required moves Console.Write(moves + " "); } // Driver Code public static void Main () { int A = 188, B = 4; convertBfromA(A, B); } } // This code is contributed by code_hunt
Javascript
<script> // Javascript program to implement // the above approach // Function to find minimum number // of moves to obtained B from A function convertBfromA(a, b) { // Stores the minimum // number of moves let moves = 0; // Absolute difference let x = Math.abs(a - b); // K is in range [0, 10] for(let i = 10; i > 0; i--) { moves += Math.floor(x / i); x = x % i; } // Print the required moves document.write(moves + " "); } // Driver Code let A = 188, B = 4; convertBfromA(A, B); </script>
19
Complejidad de tiempo: O(K), donde K está en el rango [0, 10]
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por ranjeetkumar_chill y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA