Ha habido un par de desafíos que implican duplicar el código fuente: aquí y aquí . La tarea que tenemos aquí es un poco más difícil, pero debería ser posible en casi todos los idiomas.
En este desafío, tomarás un entero positivo arbitrario. Su programa debe generar ese número entero duplicado . Cuando su código fuente se duplica, tomará un entero positivo y lo generará al cuadrado .
¿Cómo se duplica su código fuente? Bueno, puedes hacerlo a tu manera . Es decir, se puede dividir el código fuente hasta en cadenas de bytes o caracteres (o fichas en langs tokenizados) de cualquier igual longitud que desee , y repetir cada trozo dos veces seguidas.
Para un programa inicial de ABCDEFGHIJKL
(longitud 12) aquí están todos los posibles programas duplicados:
Chunk length | Doubled source code
-------------+-------------------------
1 | AABBCCDDEEFFGGHHIIJJKKLL
2 | ABABCDCDEFEFGHGHIJIJKLKL
3 | ABCABCDEFDEFGHIGHIJKLJKL
4 | ABCDABCDEFGHEFGHIJKLIJKL
6 | ABCDEFABCDEFGHIJKLGHIJKL
12 | ABCDEFGHIJKLABCDEFGHIJKL
Tenga en cuenta que esto significa que los programas de longitudes principales solo se pueden duplicar de dos maneras: cada carácter se duplica o el programa completo se repite dos veces.
Reglas:
- El código debe ser un programa o función completa.
- Las lagunas estándar están prohibidas.
- Los métodos estándar de E / S están permitidos.
- Todos los caracteres / bytes, incluidos los espacios en blanco y las nuevas líneas, se cuentan en la longitud del código y contribuyen a los fragmentos.
- Usted puede asumir que la entrada y su plaza pueden ser representados por tipo int / número entero de su idioma.
- No puede asumir una nueva línea final u otro personaje.
- Proporcione el tamaño de su fragmento en el encabezado después del recuento de bytes.
- Este es el código de golf , ¡así que los programas más cortos son mejores! Si dos programas tienen la misma duración, gana el que usa la parte más pequeña. (Si tiene un programa más largo que usa una longitud de fragmento más pequeña, ¡también vale la pena publicarlo!)
- Si su programa requiere una segunda entrada / línea, no puede hacer suposiciones sobre su valor. En particular, su programa debería funcionar si la segunda entrada está vacía, igual que la primera o un número entero diferente. Si su programa no requiere una segunda entrada / línea, puede ignorar esta restricción.
5 -> 10
; doble código: 5 -> 25 25
.
.0
al final)?