DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Festa de Chocolate

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, iremos ajudar Brenno a conseguir o máximod de chocolates numa promoção da loja de doces. Vejamos mais informações com a explicação e sua resolução.

Chocolate Feast -

Brenno adora chocolates e vai para a loja com N dinheiro no bolso. O preço de cada chocolate é C. A loja oferece um desconto: para cada M embalagem que ele dá para a loja, ele ganha um chocolate grátis. Quantos chocolates Brenno consegue comer? Nosso objetivo é descobrir isso:

  • Imprimir o número total de chocolates que ele pode comer.
  • N, W e C(N= dinheiro Brenno, C= chocolate preço, M= Promoção(Free Choco))

Vejamos um exemplo:

Image description

O resultado do primeiro, segundo e terceiro caso serão:

Image description

Vejamos o código:

function chocolateFeast(n, c, m) {
    // Write your code here
  //N= money's Brenno, C= chocolate's price, M= Sale(Free Choco)
  let choco = Math.floor(n / c);
  let candy = Math.floor(n / c); 

  while(candy >= m){
    let bougth = (choco + Math.floor(candy / m)) - choco;
      choco = choco + Math.floor(candy / m);
      candy = candy % m + bougth;


    }
  return choco
}
Enter fullscreen mode Exit fullscreen mode

No início do algoritmo, declaramos duas variáveis que farão a mesma coisa:choco e candy, receber o valor inteiro da divisão de Ne C. Eles irão ter propósitos diferentes ao final.

Feito isso, criamos uma estrutura de repetição while, onde enquanto a variável candy for maior que M que representa o valor da promoção em loja. Declaramos dentro desta condição uma nova variável: bougth que irá receber choco(a divisão de N e C) + o valor inteiro da divisão de candy/m - choco. O mesmo fazemos com choco, e candy recebe o próprio valor e o resto de sua multiplicação por M + bougth. Finalizando, retornamos o resultadod e choco. Vejamos:

Image description

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

Top comments (0)