Función recursiva del factorial

c:
#include <stdio.h>

long factorial( long numero ); /* prototipo de la función */

/* la función main comienza la ejecución del programa */
int main()
{
   int i; /* contador */

   /* repite 11 veces; durante cada iteración, calcula
      el factorial( i ) y despliega el resultado */

   for ( i = 0; i <= 10; i++ ) {
      printf( "%2d! = %ld\n", i, factorial( i ) );
   } /* fin de for */

   return 0; /* indica terminación exitosa */

} /* fin de main */

/* definición recursiva de la función factorial */
long factorial( long numero )
{
   /* caso base */
   if ( numero <= 1 ) {
      return 1;
   } /* fin de if */
   else { /* paso recursivo */
      return ( numero * factorial( numero - 1 ) );
   } /* fin de else */

} /* fin de la función factorial */

2 Responses to “Función recursiva del factorial”

  1. el Says:

    el mio esta mas corto

    c:
    #include
    #include
    #include

    int n,f;
    int factorial(int n);

    main()
    {
    printf("n!= "); scanf("%d",&n);
    f=factorial(n);
    printf("\n%d!= %d",n,f);
    getch();
    }

    int factorial(int n)
    {
    int prod=1,i;   
    if ((n>1) || (n<-1))
      for(i=2;i<=abs(n);i++)
        prod*=i;
    if (n<0) return(-prod);
    return(prod);
    }

  2. admin Says:

    De hecho es mas corto el mio, sólo que había muchos comentarios jeje.

    y ademas es recursivo:

    c:
    #include <stdio.h>

    long factorial( long numero );

    void main(){
                    int i;
                    for (i=0;i<=10;i++)
                            printf( "%2d! = %ld\n",i,factorial(i));
            }

    long factorial( long numero ){
                    if(numero<=1)
                            return 1;
                    else
                            return(numero*factorial(numero-1));
            }

¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P