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:
O resultado do primeiro, segundo e terceiro caso serão:
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
}
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 N
e 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:
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)