Esta tarefa é uma variação do conto de Arthur C. Clarke .
(Os solucionadores devem estar cientes das conseqüências de completar essa tarefa.)
Em detalhes, para especificar o que se entende por “nome”:
O inteiro 1 tem 1 nome “1”.
O inteiro 2 tem 2 nomes “1 + 1” e “2”.
O inteiro 3 tem 3 nomes “1 + 1 + 1”, “2 + 1” e “3”.
O inteiro 4 tem 5 nomes “1 + 1 + 1 + 1”, “2 + 1 + 1”, “2 + 2”, “3 + 1”, “4”.
O inteiro 5 tem 7 nomes “1 + 1 + 1 + 1 + 1”, “2 + 1 + 1 + 1”, “2 + 2 + 1”, “3 + 1 + 1”, “3 + 2”, "4 + 1", "5".
Isso pode ser visualizado da seguinte forma:
1 1 1 1 1 1 1 2 1 1 1 2 2 1 1 1 3 3 2 1 1
Onde a linha $ n $ corresponde ao inteiro $ n $, e cada coluna $ C $ na linha $ m $ da esquerda para a direita corresponde ao número de nomes que começam com $ C $.
Opcionalmente, observe que a soma da $ n $ -th row $ P (n) $ é a função de partição inteira .
TarefaImplemente uma função que retorne a soma da linha $ n $ -th.
numberOfNames
é uma função.
testString: 'assert(typeof numberOfNames === "function", "numberOfNames
is a function.");'
- text: numberOfNames(5)
deve ser igual a 7.
testString: 'assert.equal(numberOfNames(5), 7, "numberOfNames(5)
should equal 7.");'
- text: numberOfNames(12)
deve ser igual a 77.
testString: 'assert.equal(numberOfNames(12), 77, "numberOfNames(12)
should equal 77.");'
- text: numberOfNames(18)
deve ser igual a 385.
testString: 'assert.equal(numberOfNames(18), 385, "numberOfNames(18)
should equal 385.");'
- text: numberOfNames(23)
deve ser igual a 1255.
testString: 'assert.equal(numberOfNames(23), 1255, "numberOfNames(23)
should equal 1255.");'
- text: numberOfNames(42)
deve ser igual a 53174.
testString: 'assert.equal(numberOfNames(42), 53174, "numberOfNames(42)
should equal 53174.");'
- text: numberOfNames(123)
deve ser igual a 2552338241.
testString: 'assert.equal(numberOfNames(123), 2552338241, "numberOfNames(123)
should equal 2552338241.");'
```