Arka fon:
Gerçek dünyada temel toplama ve çarpma gibi standart işlem matematik aşağıdaki gibi çalışır:
12 + 123 = 135
ve
12 * 123 = 1476
Bu ilginç ve sıkıcı değil! Pek çok okul zaten bunu resmi algoritmaların pratik, pratik, pratik olarak yorumluyor. Bu oldukça katı ve sıkıcı bir matematiksel diyet anlamına gelir ve bu zorlukla amaçlanan şey değildir. Sevgili sitemizde biraz eğlenmeye hazır olun.
İki pozitif tamsayı numarası ekleme işlemini, ardından sonucunun tüm rakamlarını tekrar ekleme işlemini düşünün. Sadece tek bir rakam elde edilinceye kadar ilavesi ile tekrarlama. Örneğin:
- Sonucu
12 + 123
135 olduğunu. - 135 rakamının hepsini ekleyerek elde ediyoruz
1 + 3 + 5 = 9
.
Bu tekrarlanan ilavede tek bir rakam 9 elde etmek için gerekli adım sayısı 2'dir.
Eklemenin önceki işlemlerinde olduğu gibi, iki pozitif tamsayı sayısının çarpımı aynı işlemi izler. Sonucunun tüm rakamlarını çarpın ve sonra bu işlemi sadece bir rakam kalana kadar tekrarlayın. Yukarıdaki örneği ele alalım:
- Sonucu
12 * 123
1476 olduğunu. - Elde ettiğimiz 1476 rakamlarının hepsini çarp
1 * 4 * 7 * 6 = 168
. - Elde ettiğimiz 168 hanenin tekrarını çarpın
1 * 6 * 8 = 48
. - Elde ettiğimiz 48 rakamın tüm rakamlarını tekrar çarpın
4 * 8 = 32
. - Elde ettiğimiz 32 hanenin tümü bir kez daha çarpılır
3 * 2 = 6
.
Bu tekrarlanan çarpma işleminin bir tek basamaklı 6 değerini elde etmek için gerekli adım sayısı 5'tir.
Bu zorluğun uğruna ve herhangi bir matematik gösteriminin kötüye kullanılmasından kaçınılması için, bu iki sahte gösterimi tanıtıyorum: (+)
ve (*)
, ancak , aşağıdaki gibi çalışan, istediğiniz herhangi bir gösterimi kullanabilirsiniz :
- Tek bir değer elde etmek için tekrarlanan ekleme işleminin çalışmasıdır
12 (+) 123 = 9
. - Tek bir değer elde etmek için tekrarlanan çarpma işleminin işlemidir
12 (*) 123 = 6
.
Meydan okuma:
Zorluk, arka plan bölümünde açıklandığı gibi her iki işlemi de gerçekleştirebilecek bir program veya fonksiyon yazmaktır : (+)
ve (*)
.
Giriş:
Program veya fonksiyon girişleri ya da iki pozitif tamsayılar ve bir işlem olup (+)
ve (*)
. Girişin formatı, programcının keyfi bir seçimidir . Sen girişi, örneğin, biçimlendirmek edebilir a (+) b
ya F(a, (+), b)
veya istediğiniz herhangi biçimi.
Çıktı:
Programın veya fonksiyonun çıktısı, işlemin sonucunu ve istediğiniz şekilde serbest biçimli biçimde gereken adım sayısını içermelidir.
Test Durumları (giriş ve çıkış formatlarını dikkate almayın):
81 (+) 31 --> (4 ; 2)
351 (+) 14568 --> (6 ; 3)
21 (*) 111 --> (8 ; 3)
136 (*) 2356 --> (0 ; 2)
Genel kurallar:
- Bu kod-golf , bu yüzden byte cinsinden en kısa cevap mücadeleyi kazanıyor.
Esolangs'ın sizi normal dillerle cevap göndermekten caydırmasına izin vermeyin. Programlama dilinizle mümkün olduğunca kısa bir cevap vererek bu zorluğun tadını çıkarın. Akıllıca bir cevap ve net bir açıklama gönderirseniz, kullandığınız programlama diline bakılmaksızın cevabınız takdir edilecektir (dolayısıyla önyüklemeler). - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, uygun parametrelerle fonksiyon / yöntem, tam programlar vb. Kullanmanıza izin verilir. Seçim sizin.
- Mümkünse, programınız büyük sayıları doğru şekilde kullanabilir. Değilse, bu sadece iyi olacak.