Factorial 2

codigo en C

#include <stdio.h>
#include <math.h>

int raiz_2(int x)
{
   float b;

   //b =float(x);
  // b=6;
   while (!(b==(x/b)))
   {
      b =(x/b+b)/2.0;
   }
   return b;
}

int factorial(int dato)
{
    int resultado=1, resultado_tmp, contador;
    contador=dato-2;
    printf("1 ");

    while (contador>=0)
    {
        printf("* %d ",(dato-contador));
        resultado*=(dato - contador); // producto parcial
        resultado_tmp=resultado; // respalda resultado
        contador--; // posicionarse para el siguiente producto parcial

        resultado_tmp=resultado*(dato - contador)/resultado_tmp; // multiplica y divide por si mismo. No debe alterar
        if (resultado_tmp!=(dato - contador))
        {  resultado=9999;
           break;
        }
    }
    return resultado;
}

int main()
{
    int dato, factor;
    printf("Dame el valor a calcular: ");
    //scanf("%d", &dato);
    dato=7;
    factor=factorial(dato);
    printf(" El factorial de %d es %d. %s \n",dato, factor, factor==9999 ? "El resultado excedió el limite de tu compu" : "");
    return 0;
}





No hay comentarios:

Publicar un comentario