Dadas dos arrays div y rem que contienen los valores de los divisores y los restos , la tarea es encontrar el número que, después de dividirse sucesivamente por los elementos de la array div , deja restos que están en la array rem .
Nota: El cociente de la primera división se dividirá por el segundo elemento y luego el cociente resultante se dividirá por el tercero (haciendo coincidir los restos dados) y así sucesivamente.
Ejemplos:
Entrada: div[] = {3, 5, 7}, rem[] = {1, 3, 5}
Salida: 85
85 en la división con 3 deja resto 1 con cociente 28
28 en la división con 5 deja resto 3 con cociente 5
5 en división con 7 hojas resto 5
Entrada: div[] = {7, 9}, rem[] = {2, 2}
Salida: 16
Acercarse:
- Almacene el valor del último resto en una variable, digamos num .
- Recorra la array hacia atrás de n-2 a 0 y actualice el número como num = num * div[i] + rem[i]
- Imprimir num al final.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement above approach #include <bits/stdc++.h> using namespace std; // Function to find the number int findNum(int div[], int rem[], int N) { int num = rem[N - 1]; for (int i = N - 2; i >= 0; i--) { num = num * div[i] + rem[i]; } return num; } // Driver Code int main() { int div[] = { 8, 3 }; int rem[] = { 2, 2 }; int N = sizeof(div) / sizeof(div[0]); cout << findNum(div, rem, N); return 0; }
Java
// Java implementation of the above approach public class GFG{ // Function to find the number static int findNum(int div[], int rem[], int N) { int num = rem[N - 1]; for (int i = N - 2; i >= 0; i--) { num = num * div[i] + rem[i]; } return num; } // Driver Code public static void main(String []args){ int div[] = { 8, 3 }; int rem[] = { 2, 2 }; int N = div.length; System.out.println(findNum(div, rem, N)); } // This code is contributed by ANKITRAI1 }
Python3
# Python 3 program to implement # above approach # Function to find the number def findNum(div, rem, N): num = rem[N - 1] i = N - 2 while(i >= 0): num = num * div[i] + rem[i] i -= 1 return num # Driver Code if __name__ == '__main__': div = [8, 3] rem = [2, 2] N = len(div) print(findNum(div, rem, N)) # This code is contributed by # Surendra_Gangwar
C#
// C# implementation of the // above approach using System; class GFG { // Function to find the number static int findNum(int []div, int []rem, int N) { int num = rem[N - 1]; for (int i = N - 2; i >= 0; i--) { num = num * div[i] + rem[i]; } return num; } // Driver Code static public void Main () { int []div = { 8, 3 }; int []rem = { 2, 2 }; int N = div.Length; Console.WriteLine(findNum(div, rem, N)); } } // This code is contributed by ajit
PHP
<?php // PHP program to implement // above approach // Function to find the number function findNum($div, $rem, $N) { $num = $rem[$N - 1]; for ($i = $N - 2; $i >= 0; $i--) { $num = $num * $div[$i] + $rem[$i]; } return $num; } // Driver Code $div = array( 8, 3 ); $rem = array(2, 2 ); $N = sizeof($div); echo findNum($div, $rem, $N); // This code is contributed by ajit ?>
Javascript
<script> // Javascript program to implement above approach // Function to find the number function findNum(div, rem, N) { var num = rem[N - 1]; for (var i = N - 2; i >= 0; i--) { num = num * div[i] + rem[i]; } return num; } // Driver Code var div = [ 8, 3 ]; var rem = [ 2, 2 ]; var N = div.length; document.write( findNum(div, rem, N)); </script>
18
Complejidad de tiempo: O(N)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Naman_Garg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA