// EJEMPLO DE RECURSIVIDAD
#include <stdio.h>
#include <conio.h>
int suma (int, int);
int resta(int, int);
int mult(int, int);
int divicion(int, int);
void main()
{
int d1=20,d2=2;
clrscr();
printf(" suma = %d",suma(d1,d2));
printf("\n resta = %d",resta(d1,d2));
printf("\nproducto = %d",mult(d1,d2));
printf("\ncociente = %d",divicion(d1,d2));
getch();
}
// T significa total
int suma(int a, int b)
{
if (!b) return a;
return suma(a,(b-1))+1; // T(n) = T(n-1) + 1 para T = a + b
}
int resta(int a, int b)
{
if (!b) return a;
return resta(a,(b-1))-1; // T(n) = T(n-1) - 1 para T = a - b
}
int mult(int a, int b)
{
if (!a) return 0;
if (!b) return 0;
return suma(a,mult(a,(b-1)));
}
int divicion(int a, int b)
{
if (!a) return 0;
return resta(resta(a,b), divicion(resta(a,b),b));
}