Escriba un programa o función para producir la siguiente salida en el orden correcto.
EDITAR: ¡ Los símbolos no son matemáticos! Los números solo representan datos únicos y los +y -podrían ser dos símbolos arbitrarios.
Tome una entrada entera no negativa n. La primera línea es siempre -, incluso para n = 0.
- Si la línea actual es
-, la siguiente línea es1+2+ ... (n-1)+n-- n = 4:
-=>1+2+3+4-
- n = 4:
- Si el último entero es igual a n, elimine todos los enteros del final seguidos inmediatamente por a
-, luego cambie el último+a-- n = 4:
1-2+3-4-=>1-2- - EDITAR: cuando la cadena está llena (se incluyen todos los enteros del 1 al n), elimine todos los enteros del final seguidos de a
-, hasta llegar a un entero seguido de a+. Deje ese número entero pero cambie su seguimiento+a un- - Usando el mismo ejemplo que el anterior (que no sigue
-), elimine4-, elimine3-, cambie2+a2-.1-no cambia desde que nos detenemos en2. Resultado:1-2-
- n = 4:
- Si el último entero es menor que n, agregue los enteros restantes con un
+después de cada uno, excepto el entero final que debería haber-agregado- n = 4:
1+2-=>1+2-3+4- - EDITAR: si la cadena actual no está llena (no contiene todos los enteros del 1 al n), agregue cada entero que no esté incluido en orden ascendente hasta n-1 con un
+después de cada uno, y luego agregue el último entero n seguido por un- - Si la línea actual es
1-, agregar2+, agregar3+que es n-1 si n = 4. Entonces anexar4-. Resultado:1-2+3+4-
- n = 4:
- Si la línea actual contiene todos los enteros y cada uno es seguido inmediatamente por un
-, salga del código- n = 4:
1-2-3-4-=> FIN
- n = 4:
No debe haber espacios iniciales o finales en ninguna línea. Debe haber un salto de línea entre cada línea. Puede haber o no un salto de línea en la última línea.
EDITAR: debe probar su código hasta al menos n = 10 (más de 1000 líneas de salida, por lo que no puedo incluirlo aquí). ¡Cualquier número que no haga que su código se quede sin recursos debería (eventualmente!) Producir el resultado correcto, ¡pero no tiene que esperar a que termine el universo!
Este es el código de golf , por lo que gana el código más corto en bytes.
Entrada n = 0:
-
Entrada n = 1:
-
1-
Entrada n = 2:
-
1+2-
1-
1-2-
Entrada n = 4:
-
1+2+3+4-
1+2+3-
1+2+3-4-
1+2-
1+2-3+4-
1+2-3-
1+2-3-4-
1-
1-2+3+4-
1-2+3-
1-2+3-4-
1-2-
1-2-3+4-
1-2-3-
1-2-3-4-
s*=<condition>