Écrivez un programme qui prend deux entiers en entrée; le premier peut être n'importe quel entier et le second est inférieur ou égal au nombre de chiffres du premier nombre. Que ces nombres soient a
et b
respectivement.
Le programme fera ce qui suit
- Concaténez un nombre minimal de
1
s à la fin dea
sorte que le nombre de chiffres dansa
soit divisible parb
. - Divisez le
a
long de tous lesb
chiffres. - Multipliez les chiffres de chaque section ensemble.
- Concaténer les produits ensemble (si l'un des nombres est zéro, concaténer
0
). - Répétez ce processus jusqu'à ce qu'un nombre avec strictement moins de
b
chiffres soit formé. Imprimez ceci comme sortie, ainsi que le numéro du processus est répété. Les unités ne sont pas nécessaires, mais une certaine forme de séparation entre le nombre final et le nombre d'itérations l'est.
Dans les cas de test suivants, les étapes individuelles sont affichées à des fins de compréhension. Il n'est pas nécessaire que votre programme affiche les étapes.
Cas de test 1
1883915502469, 3
Pas
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
Exemple de sortie :0, 4
Cas de test 2
792624998126442, 4
Pas
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
Exemple de sortie :06, 4
Le programme doit renvoyer une erreur (ou simplement ne rien imprimer) si b>len(a)
. De plus, b
ne peut pas être égal à 1 ou le programme entraînera une boucle infinie.
C'est du golf de code, donc les règles standard s'appliquent. Le code le plus court en octets gagne.
a
et sont également inclus dans la sortie?Réponses:
CJam, 42 octets
Testez-le ici.
la source
Perl 6, 116 octets
la source
Pyth, 32 octets
Manifestation
Prend la saisie sur deux lignes,
a
suivie deb
. Donne la sortie sur deux lignes, opérations suivies du résultat.Tampon:
+z*\1%_lzQ
Hacher:
c ... Q
Convertir en liste d'ints:
sMM
Prenez des produits:
*M
Convertir en str:
jk
Attribuer en retour:
=z
Vérifier la résiliation:
<l ... Q
Imprimer les itérations prises:
f ... )
Résultat d'impression:
z
Vérification initiale de l'impression de quelque chose:
IglzQ
la source