DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Salve o prisioneiro!!!

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 
Enter fullscreen mode Exit fullscreen mode

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);
    }
}
Enter fullscreen mode Exit fullscreen mode

O resultado será:

2
7 19 2
3 7 3

//result is:
6
3
Enter fullscreen mode Exit fullscreen mode

Com isso, concluímos mais um desafio do Resolvendo problemas no HackerRank: . Até a próxima!!!

Latest comments (0)