Dados tres enteros positivos N , K y M . La tarea es encontrar el K -ésimo número de N dígito más grande divisible por M.
Nota: K será un número entero tal que siempre existe el K -ésimo número de N dígitos más grande divisible por M.
Ejemplos
Entrada: N = 2, K = 2, M = 2
Salida: 96
Explicación: El segundo número más grande de 2 dígitos divisible por 2 es 96.Entrada: N = 9, K = 6, M = 4
Salida: 999999976
Enfoque: El problema es de base matemática. Dados tres números N , K y M . Se requiere encontrar el K -ésimo número de N dígito más grande divisible por M. Para obtener el N dígito más grande divisible por M, primero se requiere encontrar el número de N dígito más grande (por ejemplo , P ), que es N por 9 .
Ahora el mayor número de N dígitos divisible por M es (P – (P%M)) .
Por lo tanto, reste (K-1) veces Ma partir de este valor para obtener el K-ésimo valor más grande del número de N dígitos que es divisible por M.
A continuación se presentan las condiciones y la expresión matemática para obtener el K-ésimo número de N dígito más grande divisible por M.
Sea P el mayor número de N dígitos .
Entonces el mayor número de N dígitos divisible por M es: (P – (P % M)) .
Ahora el K-ésimo número de N dígito más grande divisible por M es: [(P – (P % M)) – ((K – 1) * M)]
A continuación se muestra el código de acuerdo con la fórmula anterior.
C++
// C++ program for above approach #include <iostream> using namespace std; // Function to find Kth N // digit number divisible by M int findAnswer(int N, int K, int M) { int i; long long int r = 0; // Loop to calculate the largest // N digit number. for (i = 1; i <= N; i++) { r = r * 10 + 9; } // Kth largest N digit number // divisible by M. long long int u = r - (r % M) - M * (K - 1); return u; } // Driver Code int main() { int N = 9; int K = 6; int M = 4; cout << findAnswer(N, K, M); return 0; }
Java
// Java program for above approach import java.util.*; class GFG{ // Function to find Kth N // digit number divisible by M static int findAnswer(int N, int K, int M) { int i; int r = 0; // Loop to calculate the largest // N digit number. for (i = 1; i <= N; i++) { r = r * 10 + 9; } // Kth largest N digit number // divisible by M. int u = r - (r % M) - M * (K - 1); return u; } // Driver Code public static void main(String[] args) { int N = 9; int K = 6; int M = 4; System.out.print(findAnswer(N, K, M)); } } // This code is contributed by 29AjayKumar
Python3
# Python code for the above approach # Function to find Kth N # digit number divisible by M def findAnswer(N, K, M): i = None r = 0; # Loop to calculate the largest # N digit number. for i in range(1, N + 1): r = r * 10 + 9; # Kth largest N digit number # divisible by M. u = r - (r % M) - M * (K - 1); return u; # Driver Code N = 9; K = 6; M = 4; print(findAnswer(N, K, M)); # This code is contributed by Saurabh Jaiswal
C#
// C# program for above approach using System; class GFG { // Function to find Kth N // digit number divisible by M static int findAnswer(int N, int K, int M) { long r = 0; // Loop to calculate the largest // N digit number. for (int i = 1; i <= N; i++) { r = r * 10 + 9; } // Kth largest N digit number // divisible by M. long u = r - (r % M) - M * (K - 1); return (int)u; } // Driver Code public static void Main() { int N = 9; int K = 6; int M = 4; Console.Write(findAnswer(N, K, M)); } } // This code is contributed by Samim Hossain Mondal.
Javascript
<script> // JavaScript code for the above approach // Function to find Kth N // digit number divisible by M function findAnswer(N, K, M) { let i; let r = 0; // Loop to calculate the largest // N digit number. for (i = 1; i <= N; i++) { r = r * 10 + 9; } // Kth largest N digit number // divisible by M. let u = r - (r % M) - M * (K - 1); return u; } // Driver Code let N = 9; let K = 6; let M = 4; document.write(findAnswer(N, K, M)); // This code is contributed by Potta Lokesh </script>
999999976
Complejidad de tiempo: O (MaxDigit), donde maxDigit es el número de N dígitos más grande.
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por priyanshusingh241202 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA