Napisz program, który przyjmuje dwie liczby całkowite jako dane wejściowe; pierwsza może być dowolną liczbą całkowitą, a druga jest mniejsza lub równa liczbie cyfr w pierwszej liczbie. Niech te numery się ai bodpowiednio.
Program wykona następujące czynności
- Połącz minimalną liczbę
1s do końca,aaby liczba cyfr wabyła podzielna przezb. - Podziel
awzdłuż każdejbcyfry. - Pomnóż cyfry w każdej sekcji razem.
- Połącz produkty razem (jeśli jedna z liczb jest równa zero, następnie połącz
0). - Powtarzaj ten proces, aż
butworzy się liczba z dokładnie mniejszą liczbą cyfr. Wydrukuj to jako wynik, a także numer procesu jest powtarzany. Jednostki nie są konieczne, ale istnieje pewna forma separacji między liczbą końcową a liczbą iteracji.
W poniższych przypadkach testowych poszczególne kroki są pokazane w celu zrozumienia. Twój program nie musi wyświetlać kroków.
Przypadek testowy 1
1883915502469, 3
Kroki
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
Przykładowe dane wyjściowe :0, 4
Przypadek testowy 2
792624998126442, 4
Kroki
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
Przykładowe dane wyjściowe :06, 4
Program musi zwrócić błąd (lub po prostu nic nie drukować), jeśli b>len(a). Ponadto, bnie może być równy 1, w przeciwnym razie program spowoduje nieskończoną pętlę.
To jest kod golfowy, więc obowiązują standardowe zasady. Najkrótszy kod w bajtach wygrywa.
ai są również uwzględniane w danych wyjściowych?