DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Uma árvore com ciclos diferentes

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: no problema de hoje, averiguar o crescimento de uma árvore utópica, que cresce de maneira estranha. Vejamos:

Utopian Tree -

No caso de hoje, temos uma Árvore Utópica que passa por 2 ciclos de crescimento a cada ano. A cada primavera, ela dobra de altura. A cada verão, sua altura aumenta em 1 metro. Como o problema não revelou sobre os outros ciclos anuais, vamos ignorá-los e utilizar somente o que nos foi trabalhado: VERÃO e PRIMAVERA.

  • Temos o parâmetro n que irá guardar um array com todos os ciclos de crescimento dessa árvore.

  • Caso seja VERÃO a árvore crescerá: 1

  • Caso seja PRIMAVERA a árvore crescerá: 2x mais

Vejamos a execução do código:

function utopianTree(n) {
    // Write your code here
  let cycleTree = 1

  for (let i = 0; i < n; i++){
    if( i % 2 ==0){
     cycleTree = cycleTree * 2
    }
    else {
      cycleTree++
    }
  }

  return cycleTree
}
Enter fullscreen mode Exit fullscreen mode

O código acima tem os parâmetros de ciclos em n e criamos uma variável cycleTree que tem o valor inicial 1. Criamos um laçõ de repetição forque irá iterar o que está dentro do parâmetro inicial.

Quando o index de um ciclo der o resto 0, ao ser dividido por 2, ele será par, o que fará com que cycleTree seja multiplicado por ele mesmo 2 vezes. Esse caso representa a PRIMAVERA

Caso contrário adicionará apenas +1 ao cycleTree crescendo 1x. Esse caso representa o VERÃO.

O resultado será:

2
0
1


1 // primeiro ciclo 
2 // terceiro ciclo
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)