¿Cuál es la lógica detrás de este programa? Se le da un número entero N. ¡Escriba un código para calcular 1! – 2! + 3! … hasta N términos.

Gracias por A2A Abhi.

Divide la expresión en dos oraciones simples.

Tomando factorial de cada enésimo término.

El término se suma o resta en función de su posición. Más específicamente, los términos pares se restan mientras que los términos impares se agregan.

Entonces, el enésimo término se define como ((-1) ^ (n + 1)) * n !.

((-1) ^ (n + 1)) asigna la operación de sumar o restar dependiendo del valor de n.

El primer término, será ((-1) ^ 2) * 1 !, es decir, 1 !.

2do término = ((-1) ^ 3) * 2 !, es decir, -2 !.

Agrega todos estos términos.

Para C / C ++, el bloque de bucle sería,

(int i y sum se definen y sum se establece en 0. n es el número de términos)

para (i = 1; i <= n; i ++)
sum = sum + (pow (-1, n + 1) * fact (n));

fact () será una función definida por el usuario para factorial con el prototipo [int fact (int)], que debe escribir usted mismo. Intenta hacerlo.

En caso de cualquier problema, no dude en hacer ping. 🙂

Como sabes

2! es 2 * 1!

3! es 3 * 2!

… pronto

podemos usar la técnica de memorización aquí, lo que significa recordar el resultado calculado anteriormente, y no calcular una y otra vez, solo use el resultado de recordar anterior si necesitamos recalcular

entonces, primero calcula 1! que es solo 1, colóquelo en una variable facto , agréguelo a la variable suma (la suma se inicializó a 0 anteriormente)

luego multiplicas 2 a facto para obtener 2 !, luego agregas a la variable suma.

continúe multiplicando y agregue hasta N

intenta codificar de esta manera, será más rápido

((no use la recursión ingenua que calcula repetidamente varias veces el factorial anterior, por ejemplo, 3! se calcula en 3, 4, 5, y así sucesivamente a N !, y así sucesivamente.))

todo hecho, la mejor de las suertes

Primero tienes que escribir una función que devuelva el factorial de dar número.

Ahora la lógica para calcular la serie sería

suma flotante = 0;
para (int i = 0; i {
if (i% 2) sum = sum + fact (I); // comprobar si el número es par o impar
sino suma = suma – hecho (i);
}