Fundamentos:Solucións:Cálculo do Número e

De ASIRodeira

Escribir un programa que calcule o número e cunha resolución a elexir polo usuario. A resolución indicará o número de términos que se teñen que utilizar para o cálculo, xa que se calculará utilizando a sucesión de Mac Laurin:

e=1+1/1!+1/2!+1/3!+1/4!....


Índice

Solución de Xavi:

Pseudocódigo

  Inicio-Programa
    Pedir r
    nume=1
    Mentras (r>=1)
      nume=nume+1/factorial(r)
      r=r-1;
    Fin-Mentras
    Visualizar nume
  Fin-Programa

<code>

 // Recibe un número N enteiro positivo e
 // devolve o seu factorial
 //
 función factorial(N)
   R=1
   Mentras(N>1)
     R=R*N;
     N=N-1;
   FinMentras
   Devolver R;
 fin-función factorial

</code>

Implementación en C

 
#include <stdio.h>
 
long factorial(int n);
 
// Función factorial
// Recibe: Un número (n)
// Devolve: O seu factorial (n!)
//
long factorial(int n)
{
  int res=1;
 
  while(n>1)
  {
    res=res*n;
    n=n-1;
  }
  return res;
}
 
// Función Principal
//
void main(void)
{
  int nume,r;
 
  printf("Cálculo do Número e\n===================\n");
  printf("Resolución do Cálculo?:");
  scanf("%d",&r);
  nume=1;
  while (r>=1)
  {
    nume=nume+1.0/factorial(r);
    r=r-1;
  }
  printf("e=%d\n",nume);
}
 

Solución de boube:

Implementación en C

 
#include <stdio.h>
 
int factorial (int c);
 
int   factorial (int c)
{
    int res,n;
 
    n=c;
    res=1;
    
    while(c>1)
    {
       res=res*c;
       c=c-1;
    }
    
    return res;
}
 
main ()
{
        
        
        int resolucion, i;
        double resultado;
        
        
        printf ("Introduza resolucion:");
        scanf ("%d", &resolucion);
 
        for (i=0;i<resolucion;i++)
        {
                resultado=resultado+(1.0/factorial(i));
        }
        
        printf ("O resultado e: %lf \n", resultado);
        
}
 
Ferramentas persoais