İki tamsayıyı girdi olarak alan bir program yazın; birincisi herhangi bir tamsayı olabilir ve ikincisi ilk sayıdaki basamak sayısından küçük veya ona eşittir. Bu sayılar sırasıyla a
ve olsun b
.
Program aşağıdakileri yapacaktır
- Minimum sayıda
1
s değerini sonunaa
kadar birleştirin , böylece içindeki basamak sayısıa
bölünebilirb
. a
Herb
basamak boyunca bölün .- Her bölümdeki rakamları birlikte çarpın.
- Ürünleri bir araya getirin (sayılardan biri sıfırsa birleştirin
0
). b
Rakamlardan kesinlikle daha az olan bir sayı oluşana kadar bu işlemi tekrarlayın . Bunu çıktı olarak yazdırın ve işlem sayısı tekrarlanır. Birimler gerekli değildir, ancak son sayı ile yineleme sayısı arasında bir çeşit ayrım gereklidir.
Aşağıdaki test durumlarında, münferit adımlar anlaşılması amacıyla gösterilmiştir. Programınızın adımları görüntülemesi gerekli değildir.
Test durumu 1
1883915502469, 3
adımlar
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
Örnek Çıktı :0, 4
Test durumu 2
792624998126442, 4
adımlar
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
Örnek Çıktı :06, 4
Program bir hata döndürmelidir (ya da herhangi bir şey yazdırmamalıdır) b>len(a)
. Ayrıca, b
1'e eşit olamaz veya program sonsuz bir döngüye neden olur.
Bu kod golf, bu yüzden standart kurallar geçerlidir. Bayt cinsinden en kısa kod kazanır.
a
ve çıktıya dahil edilir mi?