Bienvenidos a www.geekprogramador.tk en este blog encontraras manuales y tutoriales sobre C/C++ también ejercicios de programación resueltos en C/C++.

lunes, julio 27, 2009

Multiplicar 2 numeros por medio de recursividad

El siguiente programa multiplica 2 números por medio de recursividad.

En dicho programa se analizan algunos aspectos:

1. Cuando el segundo numero ingresado es 0 entonces el programa deberá de retornar 0.

2. Cuando el segundo numero ingresado es 1 entonces se deberá retorna el valor del primer numero ingresado.

3. Si el segundo numero ingresado es distinto de 0 y 1 entonces hay que evaluar lo siguiente:

3.1 Si el segundo numero es mayor que 1 entonces retornaremos lo siguiente a+multiplicar(a, b-1); "Donde a es el primer numero ingresado y b es el segundo" y para llegar al caso base vamos a decrementar a b en 1.

3.2 Si el segundo numero no es mayor que 1 y su valor no es 1 y tampoco es 0 entonces retornaremos -a+multiplicar(a, b+1); y incrementaremos a b en 1 para que llegue a un caso base.

Código en C:
|>Descargar<|

#include<stdio.h>
#include<stdlib.h>

int multiplicar(int a, int b);

main(){
int a, b;
printf("Ingrese el primer numero:");
scanf("%d", &a);
printf("\nIngrese el segundo numero:");
scanf("%d", &b);

printf("%d\n", multiplicar(a,b) );

system("pause");
return 0;
}

int multiplicar(int a, int b){
int acu=0;

switch(b){
case 0:
return 0;
break;

case 1:
return a;
break;

default:
if(b>1){
return a+multiplicar(a, b-1);
}
else{
return -a+multiplicar(a, b+1);
}
break;
}
}



Código en C++:
|>Descargar<|

#include<iostream>
#include<stdlib.h>

using namespace std;
int multiplicar(int a, int b);

main(){
int a, b;
cout << "Ingrese el primer numero:";
cin >> a;
cout << "\nIngrese el segundo numero:";
cin >> b;

cout << multiplicar(a,b) << "\n";

system("pause");
return 0;
}

int multiplicar(int a, int b){
int acu=0;

switch(b){
case 0:
return 0;
break;

case 1:
return a;
break;

default:
if(b>1){
return a+multiplicar(a, b-1);
}
else{
return -a+multiplicar(a, b+1);
}
break;
}
}

3 comentarios:

Leek dijo...

Buen Codigo amigo, muy bueno al menos para mi, así puedo practicar, y así los demás Geeks Programadores podremos sacar ideas para aplicar tus codigos.

DXero dijo...

Hola amigo pues gracias por el comentario espero que los códigos que encuentren aquí les sirvan a muchos programadores xD.

Unknown dijo...

muy buen aporte amigo +10 lince intergaláctico

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews