1'den büyük bazı tam sayı N için, N boyunda geniş N karakterli bir kare metin bloğu düşünün.
Örnek olarak N = 5 olsun ve metin olsun:
MLKJI
NWVUH
OXYTG
PQRSF
ABCDE
Bunun, sol alt köşeden saatin tersi yönünde çevrilmiş alfabesinin (Z dışında) olduğuna dikkat edin. Bir tür halı halı gibi.
Metni saat yönünde bir çeyrek tur döndürerek "kaydırmak", sonuç FGHI
olarak aynı seviyededir ABCDE
:
PONM
QXWL
RYVK
STUJ
ABCDEFGHI
Bu açma, metin tek bir satır olana kadar 7 kez daha yapılabilir:
SRQP
TYXO
UVWN
ABCDEFGHIJKLM
UTS
VYR
WXQ
ABCDEFGHIJKLMNOP
WVU
XYT
ABCDEFGHIJKLMNOPQRS
XW
YV
ABCDEFGHIJKLMNOPQRSTU
YX
ABCDEFGHIJKLMNOPQRSTUVW
Y
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVWXY
Meydan okuma
Buradaki zorluk, unrolling düzenlerine yeniden düzenlendiğinde ve çalıştırıldığında çeyrek tur çevirerek "kontrol edilme" sayısını gösteren bir NxN metin bloğu olan bir program yazmaktır.
Burada gerçekten iki yarışma var: (umarım çok dağınık olmaz)
- Bunu en küçük N ile yapın (N = 3 limitine kadar)
- Bunu en büyük N ile yapın (sınırsız)
Kabul edilmiş bir cevap olmayacak, ancak bu kategorilerin her birindeki kazanan benden en az 50 ödül temsilcisi alacak. Bağlar halinde en eski cevaplar kazanır.
Örnek
Kod bloğunuz
MyP
rog
ram
çıktı olması gerektiği gibi çalışıyor.
Koşu
rM
oy
ramgP
1 çıkmalı.
Koşu
or
ramgPyM
2 vermeli.
Koşu
o
ramgPyMr
çıktı 3 olmalıdır.
Son olarak, koşu ramgPyMro
4 çıkmalı.
ayrıntılar
- Çıktı kendi başına stdout'a (veya en yakın alternatife) basılmalıdır. Giriş yok.
- Kodunuzda yalnızca yazdırılabilir ASCII (altıgen kodlar 20 ila 7E, boşluk içeren) kullanabilirsiniz.
- Boşluklar boşluğu düzenleme düzenlemelerinde doldurur. (Sola doğru gitmediğiniz sürece.)
- Yalnızca tamamen kareden tamamen düz olan düzenlemelerin geçerli çıktıya sahip olmaları gerekir. Başka hiçbir düzenleme yapılmayacak.
- Kendi kaynağınızı okuyamayabilirsiniz.
- Yorumlarınızı kullanabilirsiniz.
- N = 1, pek çok dilde programın
0
çalışacağından dışlanır . İstenirse, sağdan ziyade sola gidebilirsiniz. Yani
MyP rog ram
olur
Pg yo Mrram
ve bunun gibi. Bu şekilde yuvarlanırken fazladan boşluk eklenmez. Satırlar bitiyor
(İlgili: Döndürüldüğü Saatlerin Çıktısını Giren Bir Dikdörtgen Program Yaz )