Bu zorluk size gerçek (ve trajik) bir ilham kaynağı ile sağlanıyor. Son zamanlarda klavyemdeki sayı satırı biraz dağınıktı. Anahtarlar 1-9
bazen çalışır - ancak diğer zamanlarda sonuç yoktur. Hevesli bir programcı olarak, bu korkunç! (Bu ünlem işaretine bakın. Şu anda çalıştıklarını biliyorsunuz.) Sadece sayılara değil, sembollere de ihtiyacım var.!@#$%^&*(
tamamen yarı yarıya da etkisiz kalıyorlar! Bir C programcısı olarak, dizüstü bilgisayarımı düzeltmek için kodla dolanmakla meşgul programımdan zaman ayırmak yerine, sorunla uğraşmakla daha çok ilgileniyorum. Geçtiğimiz birkaç hafta boyunca, yavaşça, kodumdaki sayı değişmezlerinin tümü onaltılık bir değerle değiştirildi, böylece sayıları kopyalayıp yapıştırmak için aramaya gitmek zorunda kalmayacağım. Ancak, bazı numaraların tuşları olmadan yazması kolay değildir 1-9
. Örneğin, sayı 1
bu kadar basit bir şekilde onaltılık bir sayı ile yazılamaz ve kodumdakileri 1
s ile değiştirmek için başvurdum 0xF - 0xE
. Etkilenen sadece anahtarları 1-9
ben gibi sembollerin tam olarak korumak, böylece +
, -
ve /
. Ancak çarpım veya parantez kullanamıyorum.*
ve (
genellikle kırılır. Bu senin zorluğuna yol açar.
Giriş
Bir tam sayı, n
stdin veya dilinizin eşdeğeri. İsterseniz, tamsayı önce veya sonra yeni bir satır veya başka bir boşluk karakteri gelebilir. Alternatif olarak, bir komut satırı argümanı ile giriş alabilirsiniz.
Programınız negatif girişe doğru cevap vermeli ve en az 32 bit işaretli tamsayıları kullanabilmelidir.
Çıktı
Programınız, gözlemlenebilir bir biçimde, sayıyı n
bir veya daha fazla onaltılık değerin toplamı, farkı veya bölümü olarak yazmak için mümkün olan en kısa (boşluk olmayan karakterlerde) mümkün olan bir çıktı vermelidir . Bu sorunu çözmenin birden fazla yolu vardır ve herhangi bir eşit uzunlukta çıktıyı başka herhangi bir şeyden yana koymanıza gerek yoktur.
Çıkış şeklinde olmalıdır aşağıdaki onaltılık değer olan tek basamak içeren ve sembolleri biridir . Izin tamsayı bölme değil, kayan nokta tanımlar.A % A % A...
A
0x
A-F a-f
%
-+/
/
(Çıktınızın, n
ilk önce soldan sağa ve sonra toplama ve çıkarma işlemlerinin kongre olduğu gibi soldan sağa değerlendirilmesiyle sonuçlanması gerektiğini unutmayın .)
Test Kılıfları
Giriş çıkış
1
0xF - 0xE
(ya da0xF-0xE
ya da0xB-0xA
ya da0xd - 0xc
ya da0xF/0xF
)15
0xF
255
0xFF
30
0xF + 0xF
Puanlama ve Kurallar
Bu kod golfü. Ön puanınız kaynak dosyanızdaki bayt sayısıdır.
1-9
Kaynağınızdaki rakamlardan hiçbirini KULLANMAYABİLİRSİNİZ .
!@#$%^&*(
Kaynağınızdaki sembolleri kullanabilirsiniz , ancak her biri puanınıza +20 ceza ile geliyor.
Programınız, n
bu fonksiyon insan tarafından okunabilir bir çıktı ürettiği sürece argüman alan bir fonksiyonla değiştirilebilir . İşlevinizin dönüş değeri çıkış olarak sayılmaz.
Standart boşluklara izin verilmez.
En düşük puan kazanır! İyi şanslar!
Biçimlendirme / sorgulama / netlik konusunda bir şey mi gördüm? Bilmeme izin ver! Bu, bu siteye ilk gönderimim!