2.3 KiB
2.3 KiB
title | id | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
Hailstone sequence | 595608ff8bcd7a50bd490181 | 5 | Sequência de granizo |
Description
A sequência de números Hailstone pode ser gerada a partir de um inteiro positivo inicial, n por:
Se n é 1, a sequência termina. Se n é par, então o próximo n da sequência= n/2
Se n é ímpar, então o próximo n da sequência = (3 * n) + 1
A conjectura de Collatz (não comprovada) é que a sequência do granizo para qualquer número inicial sempre termina.
A sequência do granizo é também conhecida como números de granizo (porque os valores geralmente estão sujeitos a múltiplas descidas e subidas como granizo em uma nuvem), ou como a sequência Collatz.
Tarefa: Crie uma rotina para gerar a seqüência de granizo para um número. Use a rotina para mostrar que a sequência do granizo para o número 27 tem 112 elementos começando com27, 82, 41, 124
e terminando com 8, 4, 2, 1
Mostre o número menor que 100.000 que tem a maior sequência de granizo junto com aquela comprimento da sequência. (Mas não mostre a seqüência real!) Veja também: xkcd (humourous). Instructions
Tests
tests:
- text: <code>hailstoneSequence</code> é uma função.
testString: 'assert(typeof hailstoneSequence === "function", "<code>hailstoneSequence</code> is a function.");'
- text: '<code>hailstoneSequence()</code> deve retornar <code>[[27,82,41,124,8,4,2,1], [351, 77031]]</code>'
testString: 'assert.deepEqual(hailstoneSequence(), res, "<code>hailstoneSequence()</code> should return <code>[[27,82,41,124,8,4,2,1], [351, 77031]]</code>");'
Challenge Seed
// noprotect
function hailstoneSequence () {
const res = [];
// Good luck!
return res;
}
After Test
console.info('after the test');
Solution
// solution required