• Blog
  • Acerca
  • Autor
  • Contacto
  • Recursividad aplicada: Máximo Común Divisor

    Ooootro post sobre recursividad, pero no se preocupen ya solo queda este y otro. Esta vez vamos a calcular el máximo común divisor de dos números de forma recursiva en c++.

    #include<stdio.h>
    int MCD(int x, int y)
    {
        if(y==0)
            return x;
        else
            return MCD(y, x%y);
    }
    int main()
    {
        int num1=0,num2=0;
        printf("::MAXIMO COMUN DIVISOR::\n");
        printf("Introduce el primer numero: ");scanf("%i",&num1);
        printf("Introduce el segundo numero: ");scanf("%i",&num2);
        printf("\tEl resultado es: %i\n", MCD(num1, num2));
        return 0;
    }

    Este es uno de esos algoritmos recursivos raros o, mejor dicho, difíciles de comprender, mi cerebro estuvo un buen rato echando humo tratando de comprender la lógica con que lo armaron y mi conclusión es que funciona de pura rana. Bueno, al final si supe como funciona pero no porque.

    1. Bayron Ortiz dice:

      Amigo este algoritmo esta escrito en Lenguaje C no C++.

    2. Walter dice:

      este algoritmo funciona perfecto en c++

    3. Jesus dice:

      Ese codigo es c y en c++ es el siguiente:

      #include

      using namespace std;

      int MCD(int x, int y)
      {
      if(y==0)
      return x;
      else
      return MCD(y, x%y);
      }
      int main()
      {
      int a=0,b=0;
      cout<>a;
      cout<<"\n";

      cout<>b;
      cout<<"\n";

      cout<<"El resultado es:"<< MCD(a, b)<<"\n";

      return 0;

      }

    4. Octavio dice:

      Me podrías explicar tu razonamiento? gracias.

    5. cuve dice:

      Es el algoritmo de uclides : el MCD de dos números también divide al resto obtenido de dividir el mayor entre el más pequeño. lol esta en wiki

      divide y venceras

    6. cuve dice:

      Falta poner

      if(num1<num2){
      aux=num1;
      num1=num2;
      num2=aux;
      }
      antes de la llamada a la funcion para ordenar los numeros de mayor a menor

      el cartero siempre llama 2 veces

    Hola, escribe aquí tu comentario: