Ekonomi sınıfımda, arkadaşlarım ve ben, geçerli bir matematiksel denklem oluşturmak için basamakları (AA / GG / YY biçiminde) yeniden düzenlemenin yollarını bulmayı seviyoruz. Çoğunlukla, birleştirmeye ek olarak toplama, çıkarma, çarpma, bölme, parantez ve üs alma özelliğini kullanmamıza izin verilir.
Programınız benzer bir şey yapmalıdır. Program geçerli tarihi içe aktarmalı ve aşağıdaki kurallara göre bir ifade yazdırmak için operatörleri eklemelidir.
- Rakamlar sırayla kullanılmalıdır. Basamakların yeniden düzenlenmesine izin verilmez.
- Ortaya çıkan ifade matematiksel olarak doğru olmalıdır.
- Toplama, çıkarma, çarpma, bölme, üs alma ve parantez kullanımına izin verilir. Basamakları birleştirmek de öyle. Ancak, tüm işlemler gerekli değildir. Bir rakamı negatif yapmak için çıkarma işareti kullanamazsınız (
-1+1+11=10
11 Kasım 2010'daki gibi). - Program standart bir makinede 60 saniye içinde çalışmalıdır.
Örneğin, bu meydan okuma 10 Kasım 2015'te yazılmıştır. Program bunu 11/10/15 olarak yorumlayacaktır. Örnek bir çıktı olacaktır (1+1)/10=1/5
.
Bonuslar
Kodunuzdaki bayt sayısını, programınızın desteklediği aşağıdakilerin her biri için 0,9 ile çarpabilirsiniz.
- Program , satır satırları ile ayırarak oluşturulabilecek tüm olası ifadeleri yazdırır . İfadeler artan ek simgeler sırasına göre listelenmişse, ek bir 0,95 ile çarpın.
- Program aynı zamanda AA / GG / YYYY tarihleri için de çalışıyor ve yılın ilk iki basamağı ile bir olasılığa ek olarak baskı yapmıyor. Bu bonus ilk bonus ile birleştirilirse, yılın ilk iki basamağıyla ilgili tüm olasılıklar yazdırılmalıdır.
- Program ayrıca çoklu eşitlikler varken için bir denklem yazdırır (örneğin, 11 Kasım 2011 tarihinde,
1=1=1=1=1=1
gibi olasılıklara ek olarak, basılacak olur1*1=1=1=1=1
,1*1*1=1=1=1
ve1*1*1*1=1=1
. İlk prim elde edilecek tüm bu tür vakalar yazdırılması gerekir. - Program 2 ve 16 arasındaki tabanlara dönüştürmeyi destekler. Taban 10 değilse, ifadedeki tüm sayıların aynı tabana
(Base b)
yazılması ve ifadeden sonra yazılması gerekir (b
buna göre değiştirilir).
Bu kod golf, bu yüzden standart kurallar geçerlidir. Bayt cinsinden en kısa kod kazanır.