DEV Community

Altencir Junior
Altencir Junior

Posted on • Edited on

Resolvendo problemas no HackerRank: Números Extra Longos em Fatorial(!).

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, vamos pegar um número inteiro e executar seu fatorial, para encontrar valores extraordinários. Vejamos agora uma explicação detalhada e vejamos a resolução.

Extra Long Factorials -

O problema neste episódio é curto mas ao mesmo tempo um pouco trabalhoso, visto que ele não nos conta um enredo completo, mas apenas relata que nse trata do parâmetro ao qual iremos trabalhar, no caso iremos fazer seu fatorial.

Caso não esteja se lembrando, um número fatorial seria a multiplicação de um valor pelo seu antecessor,após isso a multiplicação do antecessor de seu antecessor e assim sucessivamente até chegar o valor 1, em exemplos simples seria como o caso abaixo:

  • 10!, Ou 10(fatorial, o sinal de exclamação significa fatorial) seria igual a = 10*9*8*7*6*5*4*3*2*1. O resultado deste cálculo é o seguinte: 3628800.

Vejamos o código:

function extraLongFactorials(n) {
    // Write your code here
  let factorial = BigInt(1);

    for(let i = 1; i <= n; i++){
        factorial = factorial * BigInt(i);
    }
    console.log(factorial.toString());
}
Enter fullscreen mode Exit fullscreen mode

A função extraLongFactorials recebe um parâmetro n, que representa o número inteiro cujo fatorial deve ser calculado.

A variável factorial é inicializada com o valor 1 do tipo BigInt.

Em seguida, é iniciado um loop for que inicia em 1 e vai até n. Dentro do loop, a cada iteração, o valor de factorial é atualizado multiplicando-se pelo valor de i, que é o número da iteração atual. Note que o operador * está multiplicando BigInt(i), que é o valor de i convertido para o tipo BigInt.

Finalmente, o valor do fatorial é impresso na saída padrão usando a função console.log(), convertido para uma string usando o método toString() do tipo BigInt.

Em resumo, esta função calcula o fatorial de um número inteiro n usando BigInt, que permite lidar com números maiores do que o limite máximo do tipo Number do JavaScript.

Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.

Top comments (0)