Escriba un programa que tome dos enteros como entrada; el primero puede ser cualquier número entero y el segundo es menor o igual que el número de dígitos en el primer número. Deje que estos números sean a
y b
respectivamente.
El programa hará lo siguiente
- Concatene un número mínimo de
1
s al final dea
modo que el número de dígitosa
sea divisible porb
. - Dividir a lo
a
largo de cadab
dígito. - Multiplique los dígitos en cada sección juntos.
- Concatene los productos juntos (si uno de los números es cero, entonces concatene
0
). - Repita este proceso hasta que
b
se forme un número con estrictamente menos de dígitos. Imprima esto como la salida, así como también se repite el número del proceso. Las unidades no son necesarias, pero sí alguna forma de separación entre el número final y el número de iteraciones.
En los siguientes casos de prueba, los pasos individuales se muestran con el propósito de comprender. No es necesario que su programa muestre los pasos.
Caso de prueba 1
1883915502469, 3
Pasos
1883915502469 //Iteration 1
188391550246911
188 391 550 246 911
64 27 0 48 9
64270489 //Iteration 2
642704891
642 704 891
48 0 72
48072 //Iteration 3
480721
480 721
0 14
014 //Iteration 4
0
Salida de muestra :0, 4
Caso de prueba 2
792624998126442, 4
Pasos
792624998126442 //Iteration 1
7926249981264421
7926 2499 8126 4421
756 648 96 32
7566489632 //Iteration 2
756648963211
7566 4896 3211
1260 1728 6
126017286 //Iteration 3
126017286111
1260 1728 6111
0 112 6
01126 //Iteration 4
01126111
0112 6111
0 6
06
Salida de muestra :06, 4
El programa debe devolver un error (o simplemente no imprimir nada) si b>len(a)
. Además, b
no puede ser igual a 1 o el programa dará como resultado un bucle infinito.
Este es el código de golf, por lo que se aplican reglas estándar. El código más corto en bytes gana.
a
y también se incluyen en la salida?Respuestas:
CJam, 42 bytes
Pruébalo aquí.
fuente
Perl 6, 116 bytes
fuente
Pyth, 32 bytes
Demostración
Toma entrada en dos líneas,
a
seguido deb
. Da salida en dos líneas, operaciones seguidas de resultado.Almohadilla:
+z*\1%_lzQ
Picar:
c ... Q
Convertir a lista de entradas:
sMM
Tomar productos:
*M
Convertir de nuevo a str:
jk
Asignar de nuevo:
=z
Verifique la terminación:
<l ... Q
Imprimir iteraciones tomadas:
f ... )
Resultado de impresión:
z
Verificación inicial de si imprimir algo en absoluto:
IglzQ
fuente