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.
Amigo este algoritmo esta escrito en Lenguaje C no C++.
este algoritmo funciona perfecto en c++
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;
}
mmmm nose pk no salio bn lo ke pegue :S
int a=0,b=0;
cout<>a;
cout<<"\n";
cout<>b;
cout<<"\n";
cout<<"El resultado es:"<< MCD(a, b)<<"\n";
return 0;
Me podrÃas explicar tu razonamiento? gracias.
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
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