--- id: 5900f5021000cf542c510015 challengeType: 5 title: 'Problem 406: Guessing Game' videoUrl: '' localeTitle: 'Problema 406: Jogo de Adivinhação' --- ## Description
Estamos tentando encontrar um número oculto selecionado do conjunto de inteiros {1, 2, ..., n} fazendo perguntas. Cada número (pergunta) que pedimos, temos uma das três respostas possíveis: "Seu palpite é menor do que o número oculto" (e você tem um custo de a), ou "Seu palpite é maior que o número oculto" (e você incorrer em um custo de b), ou "Sim, é isso!" (e o jogo termina). Dado o valor de n, aeb, uma estratégia ótima minimiza o custo total para o pior caso possível.

Por exemplo, se n = 5, a = 2 e b = 3, então podemos começar por perguntar "2" como nossa primeira pergunta.

Se nos disserem que 2 é maior do que o número oculto (para um custo de b = 3), então temos certeza de que "1" é o número oculto (para um custo total de 3). Se nos dissermos que 2 é menor do que o número oculto (por um custo de a = 2), então nossa próxima pergunta será "4". Se nos disserem que 4 é maior que o número oculto (para um custo de b = 3), então temos certeza de que "3" é o número oculto (para um custo total de 2 + 3 = 5). Se nos disserem que 4 é menor do que o número oculto (por um custo de a = 2), então temos certeza de que "5" é o número oculto (para um custo total de 2 + 2 = 4). Assim, o custo de pior caso alcançado por esta estratégia é 5. Também pode ser mostrado que este é o menor custo de pior caso que pode ser alcançado. Então, de fato, acabamos de descrever uma estratégia ótima para os valores dados de n, a e b.

Seja C (n, a, b) o pior custo possível alcançado por uma estratégia ótima para os valores dados de n, a e b.

Aqui estão alguns exemplos: C (5, 2, 3) = 5 C (500, √2, √3) = 13.22073197 ... C (20000, 5, 7) = 82 C (2000000, √5, √7 ) = 49,63755955 ...

Seja Fk os números de Fibonacci: Fk = Fk-1 + Fk-2 com casos de base F1 = F2 = 1. Encontre ∑1≤k≤30 C (1012, √k, √Fk), e dê sua resposta arredondada para 8 casas decimais atrás do ponto decimal.

## Instructions
## Tests
```yml tests: - text: euler406() deve retornar 36813.12757207. testString: 'assert.strictEqual(euler406(), 36813.12757207, "euler406() should return 36813.12757207.");' ```
## Challenge Seed
```js function euler406() { // Good luck! return true; } euler406(); ```
## Solution
```js // solution required ```