Hola.. bueno pues sinceramente este prográma si fue uno de los que me costo un poquito mas de tiempo resolver ya que no soy un As en las matemáticas y pues ademas esto de andar calculando constantes de este tipo, es algo dificil por la variación de sus decimales por lo que no quedas totalmente seguro si el programa te da un numero correcto o no, pero las veces que yo lo calé, si me regresaba numeros correctos... Igual y tu podrías usar mi programa y modificarlo para hacerlo más preciso...

Este programa te muestra un menú con 3 opciónes:

  • Calcular factorial de un número
  • Calcular 'e' (Euler)
  • Calcular 'e' a la 'x' (Función exponencial)

He aquí el código:

C++:
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3.  
  4. void main()       
  5. {
  6.   int band,m,f,con,n,lim,aa,con1,lim1,x,xx,aa1,fac1,con11,j;
  7.   float e,fac,e1;
  8.   band=0;
  9.   while(band==0)
  10.     {
  11.      cout<<"1 ---> Calcular factorial"<<endl<<"2 ---> Calcular 'e'"<<endl<<"3 ---> Calcular 'e' a la 'x'"<<endl<<"Otro numero ---> Salir"<<endl; cin>>m; cout<<"------------------------------------------------------------"<<endl;
  12.      switch (m){
  13.        case 1: //factorial
  14.          n=-1;
  15.          while(n<0){
  16.            cout<<"Introduce un numero: "; cin>>n;
  17.          } //while
  18.          if (n==0) cout<<"El factorial es: 1"<<endl<<endl;
  19.          else //si es positivo y no es cero
  20.            {
  21.             f=1;
  22.             for (con=(int)n; con>0; con--)
  23.               {
  24.                f=f*con;
  25.               }
  26.             cout<<"El factorial es: "<<f<<endl<<endl;
  27.            }
  28.          break;
  29.        case 2: //calcular e
  30.          lim=0;
  31.          while (lim<1) {
  32.            cout<<"Introduce el limite de la formula: "; cin>>lim;
  33.          }//while
  34.          e=1;
  35.          for (aa=1; aa!=lim+1; aa++)
  36.            {
  37.            //calculamos factorial
  38.               fac=1;
  39.               for (con1=(int)aa; con1>0; con1--)
  40.                  fac=(float)fac*con1;
  41.            //calculamos e
  42.             e=(float)e+(1/fac);
  43.            }
  44.          cout<<"e: "<<(float)e<<endl<<endl;
  45.          break;
  46.        case 3: //calcular e  a la x
  47.          lim1=0;
  48.          while (lim1<1) {
  49.            cout<<"Introduce el limite de la formula: "; cin>>lim1;
  50.          }//while
  51.          cout<<"Introduce la potencia de 'e': "; cin>>x;
  52.          e1=1;
  53.          xx=x;
  54.          for (aa1=1; aa1!=lim1+1; aa1++)
  55.            {
  56.            //calculamos factorial
  57.            fac1=1;
  58.            for (con11=(int)aa1; con11>0; con11--)
  59.              fac1=(float)fac1*con11;
  60.            //calculamos x
  61.             x=xx;
  62.             for (j=1; j!=aa1; j++)
  63.               {
  64.                 x=x*xx;
  65.               }
  66.            //calculamos e
  67.             e1=(float)e1+(x/fac1);
  68.            }
  69.          cout<<"e: "<<(float)e1<<endl<<endl;
  70.          break;
  71.        default: band=1;
  72.      }//switch
  73.     } //while
  74.     cout<<"Fin de programa..."<<endl;
  75.   system("PAUSE");
  76. }