Giriş
Uzun lafın kısası: Birkaç gün önce yanlışlıkla bir çorap örmeye başladım ve düz dikişlerin oldukça mantıklı yapısı beni şu fikre götürüyor: Neden sadece bir çorap örmüyoruz?
Giriş
Giriş, aralıkta eşit bir tamsayı N'dir [2,30]
.
Çıktı
Çıktı açıkçası bir çorap.
yapı
Yalnızca düz dikiş kullanacağımız v
için yalnızca aşağı doğru dikiş ve >
sağa doğru dikiş için kullanacağınız. Tüm yapıyı bir örnekle açıklayayım N=8
:
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvv>>>
vvvvvv>>>>>>
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
- İlk blok üst kısımdır. Genişlik
N
ve yüksekliğe sahiptirN*1.5
- Daha sonra topuk başlar. Genişlik elde
v
edene kadar sağ taraftan satır başına bir tane çıkarırsınızN/2
. Ardından , aşağı örgülerin bitirilmesi için alt kısımdakiN/2
genişliğe sahip satırlar eklersinizN/2
.N/2 + 1
Genişliğe sahip toplam satır verdiğini unutmayınN/2
ilk kısım:
vvvvvvvv //begin with width N
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv // N*1.5 times
vvvvvvv // reduce
vvvvvv
vvvvv
vvvv // till here
vvvv // repeat N/2 times
vvvv
vvvv
vvvv
- Şimdi yan koğuş örgüler başlıyor. İlk küçültülmüş satırla başlarsınız
>
, genişliği elde edene kadar doldurunN
ve iki tane daha ekleyin.N/2
Genişliğe sahip ilk satırı içeren işleme devam edin - Bu seviyeye altına satır doldurun ve eklemek
N*1.5
kez>
buna - Dış parçaları oldukları gibi
>'s
bırakın ve bitene kadar ilk önce ve lase iki sıraya ekleyin
ikinci kısım:
vvvvvvvv
vvvvvvv>>> //fill to N and add two >
vvvvvv>>>>>> //repeat
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>> //till here
vvvv>>>>>>>>>>>>>>>>>>>>>>>> //fill to the row above and add N*1.5 times >
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row above
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row beneath
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
kurallar
Sondaki yeni satırlar tamam.
Büyük veya küçük harf arasında seçim yapabilirsiniz V
ancak tutarlı olması gerekir.
Bu kod golf yani bayt en kısa kodu kazanır.
Test senaryoları
N=2
vv
vv
vv
v>>>
v>>>>>>
N=4
vvvv
vvvv
vvvv
vvvv
vvvv
vvvv
vvv>>>
vv>>>>>>
vv>>>>>>>>>>>>
vv>>>>>>>>>>>>
N=6
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvv>>>
vvvv>>>>>>
vvv>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
N=12
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvv>>>
vvvvvvvvvv>>>>>>
vvvvvvvvv>>>>>>>>>
vvvvvvvv>>>>>>>>>>>>
vvvvvvv>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
v
veya V
değiştirebilir miyim ? Şu an için v
izin verilen tek şey olduğunu varsayıyorum , ancak izin vermek V
bayt sayısını etkileyecektir