freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/project-euler/problem-391-hopping-game.sp...

1.9 KiB

id challengeType title videoUrl localeTitle
5900f4f31000cf542c510006 5 Problem 391: Hopping Game Problema 391: Juego de saltar

Description

Sea sk el número de 1 al escribir los números del 0 al k en binario. Por ejemplo, escribiendo 0 a 5 en binario, tenemos 0, 1, 10, 11, 100, 101. Hay siete 1, entonces s5 = 7. La secuencia S = {sk: k ≥ 0} comienza {0, 1 , 2, 4, 5, 7, 9, 12, ...}.

Un juego es jugado por dos jugadores. Antes de que comience el juego, se elige un número n. Un contador c comienza en 0. En cada turno, el jugador elige un número de 1 a n (inclusive) y aumenta c en ese número. El valor resultante de c debe ser un miembro de S. Si no hay más movimientos válidos, el jugador pierde.

Por ejemplo: que n = 5. c comienza en 0. El jugador 1 elige 4, por lo que c se convierte en 0 + 4 = 4. El jugador 2 elige 5, por lo que c se convierte en 4 + 5 = 9. El jugador 1 elige 3, por lo que c se convierte en 9 + 3 = 12. etc. Tenga en cuenta que c siempre debe pertenecer a S, y cada jugador puede aumentar c en a lo sumo n.

Deje que M (n) sea el número más alto que el primer jugador puede elegir en su primer turno para forzar una victoria, y M (n) = 0 si no hay tal movimiento. Por ejemplo, M (2) = 2, M (7) = 1 y M (20) = 4.

Dado Σ (M (n)) 3 = 8150 para 1 ≤ n ≤ 20.

Encuentre Σ (M (n)) 3 para 1 ≤ n ≤ 1000.

Instructions

Tests

tests:
  - text: <code>euler391()</code> debe devolver 61029882288.
    testString: 'assert.strictEqual(euler391(), 61029882288, "<code>euler391()</code> should return 61029882288.");'

Challenge Seed

function euler391() {
  // Good luck!
  return true;
}

euler391();

Solution

// solution required