Scrivi un programma che accetta due numeri interi come input; il primo può essere qualsiasi numero intero e il secondo è inferiore o uguale al numero di cifre nel primo numero. Lascia che questi numeri siano ae brispettivamente.
Il programma farà quanto segue
- Concatena un numero minimo di
1s fino alla fine diacosì il numero di cifre inaè divisibile perb. - Dividi
alungo ognibcifra. - Moltiplica le cifre in ogni sezione insieme.
- Concatenare i prodotti insieme (se uno dei numeri è zero, quindi concatenare
0). - Ripetere questo processo fino a quando non
bviene formato un numero con meno di cifre. Stampa questo come l'output, così come il numero del processo viene ripetuto. Le unità non sono necessarie, ma esiste una qualche forma di separazione tra il numero finale e il numero di iterazioni.
Nei seguenti casi di test, i singoli passaggi vengono mostrati a scopo di comprensione. Non è necessario che il programma visualizzi i passaggi.
Caso di prova 1
1883915502469, 3
passi
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
Uscita campione :0, 4
Caso di prova 2
792624998126442, 4
passi
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
Uscita campione :06, 4
Il programma deve restituire un errore (o semplicemente non stampare nulla) se b>len(a). Inoltre, bnon può essere uguale a 1 o il programma si tradurrà in un ciclo infinito.
Questo è il golf del codice, quindi si applicano le regole standard. Vince il codice più breve in byte.
ae sono inclusi anche nell'output?