Fatorial Desajeitado (4/5) - como passar pelo ultimo teste.
- #JavaScript
O segredo está em como arredondamos os números. No JavaScript temos varias formas de arredondar:
Arredondar número para cima
Math.ceil(valor)
Arredondar número para baixo
Math.floor(valor)
Arredondar para o valor mais próximo
Math.round(valor)
Mas NENHUM desses servem para completar o desafio.
O que usaremos para concluir o desafio é o parseInt().
//n é o numero que recebe o input
let n = gets();
//conta é a variavel que eu vou somando os resultados das contas
let conta = 0;
//soma é uma variavel a parte só sobre a soma
let soma = 0;
//sinal vai inicial positivo e depois do primeiro loop ele se torna negativo
let sinal =1;
let i = n;
let mult;
if (n <= 2) {
console.log(n);
} else{
// i recebe n e se repete até ser menor q 4. e subtrai 4 cada vez.
for (i = n; i >= 4; i=i-4) {
mult = sinal* n * (n-1) ;
conta += parseInt(mult/(n-2));
soma += (n-3)
n= n-4;
sinal = -1;
}
//para quando n for menor que 4
switch (i) {
case 3:
conta += -6;
// mult = sinal* n * (n-1) ;
// conta += Math.round(mult/ (n-2));
break;
case 2:
conta += -2;
// conta +=sinal* n * (n-1) ;
break;
case 1:
conta += -1;
// conta +=sinal* n;
break;
case 0:
break;
default:
break;
}
x = conta + soma;
console.log(parseInt(x));
}