Considere el proceso de:
- Tomando un número entero no negativo N. 
 ej- 27.
- Dividiéndolo en enteros - N - floor(N/2)y- floor(N/2)(una mitad 'más grande' y 'más pequeña') y escribiéndolos en ese orden.
 por ejemplo se- 27convierte- 14 13.
- Eliminar el espacio para unir los enteros en un nuevo entero mucho más grande. 
 por ejemplo se- 14 13convierte- 1413.
- Repitiendo los pasos 2 y 3 alguna cantidad deseada de veces. 
 por ejemplo,- 1413→- 707 706→- 707706→- 353853 353853→- 353853353853→ ...
Este desafío se trata de hacer exactamente esto, pero no siempre en la base 10.
Desafío
Escribe un programa que tome tres números, B, N y S:
- B es un número entero de 2 a 10 que es la base de N (binario a decimal). 
- N es el entero no negativo al que se aplica el proceso de división y unión. Para facilitar la entrada del usuario, se proporciona como una cadena en la base B, no como un entero. 
- S es un número entero no negativo que es la cantidad de veces que se repite el proceso de división y reincorporación. 
La salida del programa es la representación de cadena de N en la base B después de los procedimientos de unión dividida.
Cuando S es 0, no se realizan divisiones, por lo que la salida siempre es N.
Cuando N es 0, todas las divisiones tienen la forma 0 0y se reducen a 0nuevamente, por lo que la salida es siempre 0.
Ejemplos
- B = 10, N = 27, S = 1→- 1413
- B = 10, N = 27, S = 2→- 707706
- B = 9, N = 27, S = 1→- 1413
- B = 9, N = 27, S = 2→- 652651
- B = anything, N = anything, S = 0→- N
- B = anything, N = 0, S = anything→- 0
Tabla para todos B con N = 1para S = 0a 7:
B       S=0     S=1     S=2     S=3         S=4             S=5                 S=6                                 S=7
2       1       10      11      101         1110            111111              10000011111                         10000100001000001111
3       1       10      21      1110        202201          101101101100        1201201201212012012011              212100212102121002121212100212102121002120
4       1       10      22      1111        223222          111311111311        2232222232322322222322              11131111131311311111311113111113131131111131
5       1       10      32      1413        432431          213441213440        104220331443104220331442            2433241322130211014044424332413221302110140443
6       1       10      33      1514        535535          245550245545        122553122553122553122552            4125434125434125434125441254341254341254341254
7       1       10      43      2221        11111110        40404044040403      2020202202020220202022020201        10101011010101101010110101011010101101010110101011010100
8       1       10      44      2222        11111111        44444454444444      2222222622222222222226222222        11111113111111111111131111111111111311111111111113111111
9       1       10      54      2726        13581357        62851746285173      3142536758708231425367587081        15212633743485606571782880411521263374348560657178288040
10      1       10      55      2827        14141413        70707077070706      3535353853535335353538535353        17676769267676676767692676771767676926767667676769267676
Tabla para todos los B con N aleatorio para S = 0a 3:
B       S=0     S=1         S=2                 S=3
2       11011   11101101    11101111110110      11101111110111110111111011
3       2210    11021101    20102012010200      1001212100121210012121001211
4       1113    230223      112112112111        2302302302323023023022
5       101     2323        11341134            31430423143042
6       120     4040        20202020            1010101010101010
7       134     5252        24612461            1230456412304564
8       22      1111        445444              222622222622
9       4       22          1111                505505
10      92      4646        23232323            1161616211616161
Detalles
- Tomar entrada a través de stdin o la línea de comando. Salida a stdout.
- En lugar de un programa, puede escribir una función que tome B, N y S e imprima el resultado normalmente o lo devuelva (como una cadena).
- B, N y S pueden tomarse en cualquier orden.
- Todas las entradas que producen salidas cuyos valores decimales están por debajo de 2 32 deberían funcionar.
- N se representa de la manera habitual. es decir, el dígito más significativo primero y sin ceros a la izquierda excepto en el mismo cero que se escribe 0. (La salida en00lugar de0no es válida).
- El código más corto en bytes gana.
Si y sólo si usted disfruta de mis retos, considere la posibilidad Módulo Bot rebaños! un poco de amor :)
fuente

Respuestas:
Pyth,
2119 bytesToma entrada en el formato
N\nB\nS. Pruébelo en línea: demostración o prueba de arnésExplicación
fuente
Pyth,
2921 bytesImplementación realmente sencilla.
Toma entrada en stdin en el siguiente formato:
fuente
00paraN=0.Mathematica, 101 bytes
Utiliza algunos
Throughtrucos para aplicar las funciones de techo y piso. Solo ignora los errores.fuente
CJam, 24 bytes
Pruébalo aquí. Toma entrada como
"N" S B.Explicación
fuente
"0" 1 9emitida00. Traté de jugar al golf:q~:B;{:~Bb,2/z:,Bfbs}*pero también no válido porque en su lugar produjo una cadena vacía.ial final se haría cargo de00. Puede recuperar el byte reemplazándolo2/:I-I]con)\]2f/.JavaScript ( ES6 ) 78
79Función recursiva. Ejecute el fragmento para probar (solo Firefox)
Editar 1 byte guardado thx @DocMax
fuente
m&&sconm*s.ECMAScript 6, 90 bytes
Definir una función recursiva usando una variable no es realmente un buen estilo, pero es el código más corto que se me ocurrió en ECMAScript 6.
Obtener el caso
"00" => "0"correcto desperdicia tres bytes (ens(n)lugar de simplementeN).Para probarlo, puedes usar REPL de Babel : copiar / pegar el código e imprimir los resultados ejemplo de invocación de este modo:
console.log(f(9, "27", 2)).fuente
Lisp común - 113 caracteres
Sin golf
~vRdirectiva de formato genera un entero en la basev, dondevse proporciona como argumento paraformat.parse-integeracepta un:radixargumento para convertir desde una base especificada.#1=y#1#(respectivamente asignar y usar) son variables lectoras que permiten compartir subexpresiones comunes. Cuando se expanden, dan el siguiente código:fuente
Pip , 27 bytes
Toma la base, el número entero y el número de repeticiones como argumentos de línea de comandos. El algoritmo es sencillo, pero utiliza un par de características interesantes del lenguaje:
El tipo escalar de Pip, que representa tanto números como cadenas, es útil aquí, al igual que las operaciones basadas en elementos en las listas; Por desgracia, los paréntesis y los operadores de dos caracteres
FB,TBy//negar cualquier ventaja.Solución alternativa, sin la asignación intermedia pero aún 27 bytes:
fuente
C, 245 bytes
¡Esto no va a ganar nada , pero fue divertido de hacer!
fuente
PHP ,
115112 bytesPruébalo en línea!
Sin golf:
Salida
fuente
Japt , 17 bytes
Pruébalo en línea!
Toma la entrada en el orden S, N, B con N como una lista única . Aceptar N sin una lista singleton cuesta 2 bytes .
Explicación:
fuente
Adelante (gforth) , 105 bytes
Pruébalo en línea!
Explicación
Cambia la base a B, luego en un bucle que se ejecuta S veces:
Imprime la cadena cuando finaliza y establece la base de nuevo en 10 (para que podamos ejecutar varias veces seguidas)
Explicación del código
fuente