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 */
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 */
December 1st, 2007 at 5:11 pm
el mio esta mas corto
#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);
}
December 1st, 2007 at 5:31 pm
De hecho es mas corto el mio, sólo que había muchos comentarios jeje.
y ademas es recursivo:
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));
}