Se n = 3, o melhor que podemos fazer é obviamente perguntar o número "2". A resposta nos levará imediatamente a encontrar o número oculto (a um custo total = 2).
Se n = 8, podemos decidir usar um tipo de estratégia de "pesquisa binária": nossa primeira pergunta seria "4" e se o número oculto for maior que 4, precisaremos de uma ou duas perguntas adicionais. Deixe nossa segunda pergunta ser "6". Se o número escondido ainda for maior que 6, precisaremos de uma terceira pergunta para discriminar entre 7 e 8. Assim, nossa terceira pergunta será "7" e o custo total para esse cenário de pior caso será 4 + 6. + 7 = 17.
Podemos melhorar consideravelmente o custo do pior caso para n = 8, fazendo "5" como nossa primeira pergunta. Se nos disserem que o número oculto é maior que 5, nossa segunda pergunta será "7", então saberemos com certeza qual é o número oculto (para um custo total de 5 + 7 = 12). Se nos disserem que o número oculto é menor que 5, nossa segunda pergunta será "3" e se o número oculto for menor que 3, nossa terceira pergunta será "1", dando um custo total de 5 + 3 + 1 = 9 Desde 12> 9, o custo de pior caso para esta estratégia é 12. Isso é melhor do que o que alcançamos anteriormente com a estratégia de "pesquisa binária"; também é melhor ou igual a qualquer outra estratégia. Então, de fato, acabamos de descrever uma estratégia ótima para n = 8.
Seja C (n) o pior custo possível alcançado por uma estratégia ótima para n, como descrito acima. Assim, C (1) = 0, C (2) = 1, C (3) = 2 e C (8) = 12. Similarmente, C (100) = 400 e C (n) = 17575.
Encontre C (n).
euler328()
deve retornar 260511850222.
testString: 'assert.strictEqual(euler328(), 260511850222, "euler328()
should return 260511850222.");'
```