Dev - C++ - Dados los valores X y N, obtener el valor de E mediante la suma de la serie

 
Vista:
sin imagen de perfil
Val: 32
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Dados los valores X y N, obtener el valor de E mediante la suma de la serie

Publicado por Alexs jhon (7 intervenciones) el 19/09/2020 17:42:01
Opera-Instantanea_2020-09-19_103435_mail.google.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Dados los valores X y N, obtener el valor de E mediante la suma de la serie

Publicado por Alfil (1444 intervenciones) el 19/09/2020 19:55:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <cmath>
 
using namespace std;
 
long int factorial(long int n);
 
int main()
{
    int x, n;
    float e;
 
    cout << "\nX: "; cin >> x;
    cout << "N: "; cin >> n;
 
    e = 1 + x;
 
    for (int i = n; i >= 2; i--)
    {
        e += float(pow(x, i)) / factorial(i);
    }
 
    cout << "\nResultado: " << e << endl;
 
    return 0;
}
 
long int factorial(long int n)
{
    if (n <= 1)
        return 1;
    else
        return n * factorial(n - 1);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 32
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Dados los valores X y N, obtener el valor de E mediante la suma de la serie

Publicado por Alexs (7 intervenciones) el 19/09/2020 20:01:28
Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Dados los valores X y N, obtener el valor de E mediante la suma de la serie

Publicado por Rodrigo (539 intervenciones) el 20/09/2020 02:40:10
Se puede aprovechar que los terminos son posibles de calcular con el termino anterior, de modo que el ciclo puede tomar partido de esto y ahorrar invocar la funcion pow y de implementar el factorial.

Mientras n sea mas grande, esta version ademas sera mas eficiente, pues no habra recursion, stack posible de hacer overflow y posible problema con factoriales muy grandes que no quepan en un long int.

Aqui la propuesta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
using namespace std;
 
int main()
{
    int x, n;
 
    cout << "\nX: "; cin >> x;
    cout << "N: "; cin >> n;
 
    float e = 1;
    float t = 1;
 
    for (int i = 1; i <= n; i++)
    {
        t = float(t * x) / i;
        e += t;
    }
 
    cout << "\nResultado: " << e << endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar