package Algoritmo;
import java.util.Scanner;
public class Algoritmo {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n;
System.out.print("Introduzca los n números: ");
n = s.nextInt();
System.out.print("El resultado es: " + resuelve(n));
}
public static double resuelve(int n) {
double den = 5;
double num = 5;
double suma = 0.0;
boolean numDenInverso = true;
boolean signoActualPositivo = true;
int contadorSigno = 1;
int proximoContadorSigno = 2;
for(int i=0; i < n; i++) {
if (numDenInverso) {
if (signoActualPositivo) {
suma = suma + (num / factorial(den));
} else {
suma = suma - (num / factorial(den));
}
numDenInverso = false;
num = num + (num-2);
den = den + 2;
} else {
if (signoActualPositivo) {
suma = suma + (factorial(den) / num);
} else {
suma = suma - (factorial(den) / num);
}
num = num + (num-2);
den = den + 4;
numDenInverso = true;
}
contadorSigno--;
if (contadorSigno == 0) {
contadorSigno = proximoContadorSigno;
proximoContadorSigno++;
if (signoActualPositivo) {
signoActualPositivo = false;
} else {
signoActualPositivo = true;
}
}
}
return suma;
}
public static double factorial(double num) {
if (num > 1.0) {
return num * factorial(num-1);
} else {
return 1.0;
}
}
}