info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Secuencia de Van Eck
Medio25 pts·Algoritmos
Enunciado
Secuencia de Van Eck
La secuencia de Van Eck es una sucesión de enteros no negativos definida por las siguientes reglas:
- El primer término es
a(0) = 0. - Para cada término siguiente
a(n)(conn > 0):- Si
a(n-1)no ha aparecido antes en la secuencia (antes de la posiciónn-1), entoncesa(n) = 0. - Si
a(n-1)sí ha aparecido antes, entoncesa(n)es la cantidad de pasos hacia atrás hasta su aparición anterior, es decir,a(n) = n-1 - (última posición donde apareció a(n-1)).
- Si
Ejemplo
Primeros términos de la secuencia:
n: 0 1 2 3 4 5 6 7 8 9
a(n): 0 0 1 0 2 0 2 2 1 6
Explicación paso a paso:
a(0) = 0(por definición)a(1) = 0porquea(0) = 0no había aparecido antes → 0a(2) = 1porquea(1) = 0y el 0 apareció en posición 0 →1 - 0 = 1a(3) = 0porquea(2) = 1no había aparecido antes → 0a(4) = 2porquea(3) = 0y el 0 apareció en posición 1 →3 - 1 = 2a(5) = 0porquea(4) = 2no había aparecido antes → 0a(6) = 2porquea(5) = 0y el 0 apareció en posición 3 →5 - 3 = 2a(7) = 2porquea(6) = 2y el 2 apareció en posición 4 →6 - 4 = 2a(8) = 1porquea(7) = 2y el 2 apareció en posición 6 →7 - 6 = 1a(9) = 6porquea(8) = 1y el 1 apareció en posición 2 →8 - 2 = 6
Tarea
Dada una cantidad n, retorna los primeros n términos de la secuencia de Van Eck como un array de enteros.
Ejemplos
vanEckSequence(1) // [0]
vanEckSequence(5) // [0, 0, 1, 0, 2]
vanEckSequence(10) // [0, 0, 1, 0, 2, 0, 2, 2, 1, 6]
Restricciones
1 <= n <= 1000
Restriccionesexpand_more
- Dificultad: Medio
- Completa todos los test cases para obtener los 25 puntos.
- No modificar la línea
exportal final del archivo. - Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.
Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.
Inicia sesión para reaccionar
Inicia sesión para reaccionar