Çok yönlü bir tamsayı yazıcı yapmak her şey güzel, ama çok sayıda farklı sayıyı basan tek bir kod yazmak zahmetlidir. Sayı çıkaran bir komut dosyası hazırlamak daha kolay olmaz mıydı, ama bir sonraki sayıyı almanız için size yeni bir komut dosyası veriyor mu?
Meydan okuma:
Tek bir tamsayı N
ve çalıştırılabilir bir kod veren bir kod yazın . Bir sonraki kodun çıktısını alması gereken N+1
bir kod verilmelidir N+2
. Ulaşana kadar bu yola devam edin N = 15
. (Son basılan numara 15 olmalıdır).
Kurallar:
- Giriş yok (girişin boş olduğunu varsayalım).
- Tam program veya işlev veya diğer uygun biçimlerde izin verilir.
- İlk kod çıkarılmalıdır
1
. - Baştaki sıfırları çıkaramazsınız. Yani Yazdıramıyorsanız
01
için1
. - Çıktı formatta olmalıdır
N, Code_for_N+1
. Çıktının virgül ve tek boşlukla ayrıldığını unutmayın. KodN+1
no çevreleyen tırnak işaretleri var.N , Code_for_N+1
kabul edilmez (virgülün önündeki alan). Son satırlar tamam. - Çıktının ilk karakterleri sayı olmalıdır. (Baştaki boşluk yok veya
ans = N
). - Yazdırılan numara bir sonraki kodun parçası olmamalıdır (kod bu numarayı içerebilir, ancak çıkış numarasını kodun bir parçası olarak alamazsınız).
- Örnek: çıktı
N=2
olabilir:2, printer 2
. Bu durumda,printer 2
kodudurN=3
. Çıktının tamamını kullanamazsınız:2, printer 2
kod olarakN=3
.
- Örnek: çıktı
- Komut dosyaları farklı dillerde olabilir
- Veri türleri alakasız (sayı bir dize olabilir), ancak hiçbir şeyle çevrilemez (tırnak işaretleri, parantezler vb.).
- Bunun için
N=15
basılmış bir kod varsa, ya yazdırmalıSTOP!
(bonusa bakınız) ya da hiç bir şey yazdırmamalıdır (boşluk ya da yeni satır bile değil).- İçin kod
N=15
çökemez (ancak STDERR'ye çıkış tamam). - Çıktı kodu
N=15
yazdırıldığında16
veya başka bir şeyde (bonus durumu hariç) diskalifiye edilirsiniz .
- İçin kod
- Dahili quine operatörlerine izin verilmez.
- Kaynak dosyaya dosya sistemi üzerinden erişime izin verilmiyor.
Bonus:
-10 bayt basılan kod da " STOP!
" yazdıran bir kod üretiyorsa, 10 bayt
Python sözdizimini kullanan örnekler: (açıkçası, bunlar yalnızca seçilen tamsayılar için çalışır, 1'den 15'e kadar olmaz)
N = 1
print "1, print 2"
1, print 2
---
N = 15
print 15
15
---
N = 15 (Qualifies for the -10 bytes bonus)
print "15, print 'STOP!'"
15, print 'STOP!'
print 'STOP!'
STOP!
----
N = 15 (Qualifies for the -10 bytes bonus)
print "15, disp('STOP!')"
15, disp('STOP!') (disp('STOP!') outputs STOP! in MATLAB)
----
N = 15 (This one is not OK. The submission is disqualified)
print "15, print 16"
15, print 16
Standart golf kuralları geçerli! Bayt cinsinden en küçük kod (N = 1 için) kazanır!
14, print(14+1)
?
f=>f+""
geçersiz olur mu? (f+""
işlevin yapım kodunu döndürür.)