Encuentra el número después de la división sucesiva

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>
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *