Derleyici golf dünyasına hoş geldiniz. Senin görevin spec üzerinde FizzBuzz bir varyant oynamak için başka bir program üreten bir program yazmaktır.
Derleyiciniz
Belirtilecek FizzBuzz programının varyantlarını üreten bir derleyici yazın. Bu varyantın spesifikasyonu bir tamsayı / dize çifti dizisi şeklinde ifade edilir.
- Giriş, dilinize uygun herhangi bir biçimde olabilir. (Örneklerim n: xxxx kullanıyor, ancak bu yalnızca açıklama amaçlıdır.)
- Her tamsayı girişi derleyicinizin her çağrısında yalnızca bir kez kullanılabilir.
- Her çiftin tamsayısının değeri en az bir olacaktır.
- Her çiftin dizesi tam olarak dört ASCII harfinden oluşacaktır.
- Çıktı, aşağıdaki kurallara uyan tek bir tam program olmalıdır.
- Metinsel bir program olduğu sürece çıktı herhangi bir uygun biçimde olabilir. (Yani geri dönen lambda ifadeleri yok.)
Yukarıdaki kurallara uymayan girdiler için davranış tanımlanmamıştır.
Oluşturduğunuz FizzBuzz programı
Derleyiciniz tarafından oluşturulan program girdi olarak tek bir tamsayı ( n) alacaktır . Gerektiğinde sayıları FizzBuzz dizeleriyle değiştirerek, n'den başlayarak n'ye kadar bir sayı dizisi çıkarır.
- Oluşturulan program derleyici ile aynı dilde olmalıdır.
- N girdisi dilinize uygun herhangi bir biçimde olabilir.
- n değeri en az bir olacaktır.
- Derleyiciye girilen tamsayıların en az birinin katları olan bir sayı, bir araya getirilen tamsayılarla eşlenen tüm dizelerle değiştirilmelidir.
- FizzBuzz dizesi ile değiştirilmeyecek bir sayının ondalık ASCII biçiminde çıktısı alınmalıdır.
Örneğin;
> GenFizzBuzz 3:Fizz 5:Buzz
> a.out 5
1
2
Fizz
4
Buzz
puanlama
Girişiniz, derleyicinizin oluşturduğu programların uzunluğu ile derleyicinizin uzunluğuna eklenir. Derleyicinizi aşağıdaki parametrelerle birçok kez çalıştırın ve puanınızı bulmak için oluşturulan programların uzunluklarını derleyicinin uzunluğu ile birlikte ekleyin.
- Sadece Say. (Giriş yok - Oluşturulan program, değiştirilmeden 1 ila n arasında sayılır .)
- Sadece Golf. (1: Golf - Oluşturulan program n kez "Golf" üretir .)
- Klasik FizzBuzz. (3: Fizz, 5: Vızıltı)
(Derleyicinizin yalnızca listelenenler için değil, geçerli herhangi bir giriş için kod oluşturması gerektiğini unutmayın.)