Programa recursivo para imprimir fórmula para GCD de n enteros

Dada una función mcd(a, b) para encontrar el MCD (máximo común divisor) de dos números. También se sabe que el GCD de tres elementos se puede encontrar mediante gcd(a, gcd(b, c)), de manera similar, para cuatro elementos se puede encontrar el GCD mediante gcd(a, gcd(b, gcd(c, d)) ). Dado un entero positivo n . La tarea es imprimir la fórmula para encontrar el GCD de n entero usando la función gcd() dada.
Ejemplos
 

Input : n = 3
Output : gcd(int, gcd(int, int))

Input : n = 5
Output : gcd(int, gcd(int, gcd(int, gcd(int, int))))

Enfoque: la idea es utilizar la recursividad para imprimir el comando de una sola línea. Ahora, para escribir una función recursiva, digamos recursiveFun(n), la string requerida se compone de mcd(int, + recursiveFun(n – 1) + ). Esto significa que recursiveFun(n) debe devolver una string que contiene una llamada a sí misma y para evaluar ese valor, la función recursiva comenzará de nuevo para n – 1. Esto, a su vez, devolverá otra string con una llamada a n – 1 y así hasta que n == 1 y la función recursiva en su lugar devuelve la string “int”.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// CPP Program to print single line command
// to find the GCD of n integers
#include <bits/stdc++.h>
using namespace std;
 
// Function to print single line command
// to find GCD of n elements.
string recursiveFun(int n)
{
    // base case
    if (n == 1)
        return "int";
 
    // Recursive Step
    return "gcd(int, " + recursiveFun(n - 1) + ")";
}
 
// Driver Program
int main()
{
    int n = 5;
 
    cout << recursiveFun(n) << endl;
 
    return 0;
}

Java

// Java Program to print
// single line command to
// find the GCD of n integers
class GFG
{
     
// Function to print single
// line command to find GCD
// of n elements.
static String recursiveFun(int n)
{
    // base case
    if (n == 1)
        return "int";
 
    // Recursive Step
    return "gcd(int, " +
            recursiveFun(n - 1) + ")";
}
 
// Driver Code
public static void main(String [] arg)
{
    int n = 5;
 
    System.out.println(recursiveFun(n));
}
}
 
// This code is contributed
// by Smitha

Python3

# Python 3 Program to print single line
# command to find the GCD of n integers
 
# Function to print single line command
# to find GCD of n elements.
def recursiveFun(n):
     
    # base case
    if (n == 1):
        return "int"
 
    # Recursive Step
    return "gcd(int, " + recursiveFun(n - 1) + ")"
 
# Driver Code
if __name__ == '__main__':
    n = 5
    print(recursiveFun(n))
 
# This code is contributed
# by PrinciRaj1992

C#

// C# Program to print single
// line command to find the
// GCD of n integers
using System;
class GFG
{
     
// Function to print single
// line command to find GCD
// of n elements.
static String recursiveFun(int n)
{
    // base case
    if (n == 1)
        return "int";
 
    // Recursive Step
    return "gcd(int, " +
            recursiveFun(n - 1) + ")";
}
 
// Driver Code
public static void Main()
{
    int n = 5;
 
    Console.Write(recursiveFun(n));
}
}
 
// This code is contributed
// by smitha

Javascript

<script>
// javascript Program to print
// single line command to
// find the GCD of n integers   
// Function to print single
    // line command to find GCD
    // of n elements.
    function recursiveFun(n)
    {
     
        // base case
        if (n == 1)
            return "int";
 
        // Recursive Step
        return "gcd(int, " + recursiveFun(n - 1) + ")";
    }
 
    // Driver Code
        var n = 5;
 
        document.write(recursiveFun(n));
 
// This code is contributed by gauravrajput1
</script>
Producción: 

gcd(int, gcd(int, gcd(int, gcd(int, int))))

 

Complejidad temporal: O(N), donde N es el número dado.
 

Publicación traducida automáticamente

Artículo escrito por anuj0503 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 *