// FUNCIONES RECURSIVAS
#include <stdio.h>
int factorial(int k)
{
if ( !k ) return 1;
return k * factorial( k-1 );
}
// muestra la cadena car a car
void izq_der(char *cad)
{
if ( !cad[0] ) return;
printf("%c ", cad[0]);
izq_der( ++cad );
}
// muestra la cadena invertida
void der_izq(char *cad)
{
if ( !cad[0] ) return;
der_izq( ++cad );
printf("%c ", cad[0-1]);
}
// cuenta la longitud de la cadena
int longitud(char *cad)
{
if ( !cad[0] ) return 1;
return 1 + longitud( ++cad );
}
// muestra los últimos h caracteres
void ultimosN(char *cad, int x)
{
if ( cad[0] == '\0' ) return;
ultimosN(++cad, x);
if ( longitud(cad) == x+1 ) izq_der(cad);
}
int main(int x, char **y)
{
printf("el 4!= %d\n", factorial(4));
izq_der("parangaricutirimicuaro");
printf("\n");
der_izq("parangaricutirimicuaro");
printf("\n");
ultimosN("parangaricutirimicuaro", 10);
printf("\n");
}