Dados dos números enteros N y D , la tarea es encontrar el valor de F(N) donde el valor de F(1) es D, donde F(K) se da como:
Ejemplos:
Entrada: N = 3, D = 487
Salida: 15584
Explicación:
Como F(1) = 487,
F(2) = 487 * (maxDigit(487) – minDigit(487)) = 487 * 4 = 1948
F(3) = 1948 * (maxDigit(1948) – minDigit(1948)) = 1948 * 8 = 15584
Entrada: N = 5, D = 487
Salida: 981792
Enfoque: La idea es calcular el valor de F(2) a F(N) iterativamente con la ayuda del bucle . Además, los dígitos máximo y mínimo de cada número se pueden calcular con la ayuda del ciclo dividiendo el número por 10, tomando simultáneamente el módulo para obtener el dígito.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to find the value // of the given function for the value #include <bits/stdc++.h> using namespace std; // Function to find minimum digit // in the decimal representation of N int MIN(int n) { int ans = 11; // Loop to find the minimum // digit in the number while (n) { ans = min(ans, n % 10); n /= 10; } return ans; } // Function to find maximum digit // in the decimal representation of N int MAX(int n) { int ans = -1; // Loop to find the maximum // digit in the number while (n) { ans = max(ans, n % 10); n /= 10; } return ans; } // Function to find the value // of the given function void Find_value(int n, int k) { k--; int x = 0; int y = 0; // Loop to compute the values // of the given number while (k--) { x = MIN(n); y = MAX(n); if (y - x == 0) break; n *= (y - x); } cout << n; } // Driver Code int main() { int N = 487, D = 5; // Function Call Find_value(N, D); return 0; }
Java
// Java implementation to find the value // of the given function for the value class GFG{ // Function to find minimum digit in // the decimal representation of N static int MIN(int n) { int ans = 11; // Loop to find the minimum // digit in the number while (n > 0) { ans = Math.min(ans, n % 10); n /= 10; } return ans; } // Function to find maximum digit // in the decimal representation of N static int MAX(int n) { int ans = -1; // Loop to find the maximum // digit in the number while (n > 0) { ans = Math.max(ans, n % 10); n /= 10; } return ans; } // Function to find the value // of the given function static void Find_value(int n, int k) { k--; int x = 0; int y = 0; // Loop to compute the values // of the given number while (k-- > 0) { x = MIN(n); y = MAX(n); if (y - x == 0) break; n *= (y - x); } System.out.print(n); } // Driver Code public static void main(String[] args) { int N = 487, D = 5; // Function Call Find_value(N, D); } } // This code is contributed by 29AjayKumar
Python3
# Python3 implementation to find the value # of the given function for the value # Function to find minimum digit # in the decimal representation of N def MIN(n): ans = 11 # Loop to find the minimum # digit in the number while n: ans = min(ans, n % 10) n //= 10 return ans # Function to find maximum digit in # the decimal representation of N def MAX(n): ans = -1 # Loop to find the maximum # digit in the number while n: ans = max(ans, n % 10) n //= 10 return ans # Function to find the value # of the given function def Find_value(n, k): k -= 1 (x, y) = (0, 0) # Loop to compute the values # of the given number while k: k -= 1 x = MIN(n) y = MAX(n) if ((y - x) == 0): break n *= (y - x) print(n, end = ' ') # Driver Code if __name__=='__main__': (N, D) = (487, 5) # Function Call Find_value(N, D) # This code is contributed by rutvik_56
C#
// C# implementation to find the value // of the given function for the value using System; class GFG{ // Function to find minimum digit in // the decimal representation of N static int MIN(int n) { int ans = 11; // Loop to find the minimum // digit in the number while (n > 0) { ans = Math.Min(ans, n % 10); n /= 10; } return ans; } // Function to find maximum digit // in the decimal representation of N static int MAX(int n) { int ans = -1; // Loop to find the maximum // digit in the number while (n > 0) { ans = Math.Max(ans, n % 10); n /= 10; } return ans; } // Function to find the value // of the given function static void Find_value(int n, int k) { k--; int x = 0; int y = 0; // Loop to compute the values // of the given number while (k-- > 0) { x = MIN(n); y = MAX(n); if (y - x == 0) break; n *= (y - x); } Console.Write(n); } // Driver Code public static void Main(String[] args) { int N = 487, D = 5; // Function Call Find_value(N, D); } } // This code is contributed by 29AjayKumar
Javascript
<script> // javascript implementation to find the value // of the given function for the value // Function to find minimum digit // in the decimal representation of N function MIN( n) { let ans = 11; // Loop to find the minimum // digit in the number while (n) { ans = parseInt(Math.min(ans, n % 10)); n = parseInt(n/ 10); } return ans; } // Function to find maximum digit // in the decimal representation of N function MAX( n) { let ans = -1; // Loop to find the maximum // digit in the number while (n) { ans = parseInt(Math.max(ans, n % 10)); n = parseInt(n/ 10); } return ans; } // Function to find the value // of the given function function Find_value( n, k) { k--; let x = 0; let y = 0; // Loop to compute the values // of the given number while (k--) { x = parseInt(MIN(n)); y = parseInt(MAX(n)); if (y - x == 0) break; n *= (y - x); } document.write(n); } // Driver Code let N = 487, D = 5; // Function Call Find_value(N, D); // This code contributed by gauravrajput1 </script>
981792
Complejidad del tiempo: O(D*log(N))
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por biswas8927 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA