Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: no problema precisamos salvar um prisioneiro de uma cadeia, que irá receber um doce "surpresa". Vejamos agora.
Save the Prisoner! -
Uma prisão tem vários prisioneiros e várias guloseimas para distribuir a eles. O carcereiro decide que a maneira mais justa de dividir as guloseimas é sentar os prisioneiros em torno de uma mesa circular em cadeiras numeradas sequencialmente. Um número de cadeira será sorteado de um chapéu. Começando com o prisioneiro naquela cadeira, um doce será entregue a cada prisioneiro sequencialmente ao redor da mesa até que todos tenham sido distribuídos.
O carcereiro porém está brincando com eles. O último pedaço de doce se parece com todos os outros, mas tem um gosto horrível .Devemos determinar o número da cadeira ocupada pelo prisioneiro que receberá aquele doce.
- n =4 // número de prisioneiros
- m =6 // número de doces
- s =2 // número da cadeira que começa a distribuição
Vejamos agora um exemplo. A primeira linha representa o número de testes feitos, já a segunda tem três espaços de números:
2(número de testes)
n m s
5 2 1
5 2 2
n m s
O resultado será 2 e 3, pois a contagem iniciará na primeira no 1, como primeiro a receber o doce e terminarão os doces no 2 que será o premiado. O mesmo se aplica ao segundo caso.
Vejamos a criação do algoritmo:
function saveThePrisoner(n, m, s) {
// Write your code here
//n=numero de prisioneiros;m=numero de doces;s=cadeira a avisar!
let warnPrisoner = m % n;
if ((warnPrisoner + s -1) % n == 0){
return n;
}
else{
return ((warnPrisoner + s -1)%n);
}
}
O resultado será:
2
7 19 2
3 7 3
//result is:
6
3
Com isso, concluímos mais um desafio do Resolvendo problemas no HackerRank: . Até a próxima!!!
Latest comments (0)