Yakında arkadaşımın doğum günü ve programcı ve ASCII sanat aşığı olduğu için ona ASCII pastası yapacağımı sanıyordum!
Ne yazık ki, şu anki yaşını unutmaya devam ediyorum, bu yüzden ASCII fırınım için belirli sayıda mum içeren bir pasta pişiren bir programım olmasını istiyorum, bu yüzden onunla yanılıyorsam tekrar kendim yapmak zorunda değilim yaş.
ASCII fırınlar sadece sınırlı bellek ve depolama kapasitesine sahiptir, bu nedenle mümkün olan en az baytı kullanmalıdır .
Senin görevin:
Konsola doğum günü pastası veren, girdinin belirttiği kadar mum içeren bir program yazın.
Kek gereksinimleri:
- Yatay
-
ve dikey|
çizgilerden ve köşelerden oluşan bir kenarlığı olmalıdır+
. - En az 5 karakter genişliğinde (pasta kenarlığı dahil
|
) - En az 5 karakter yüksekliğinde (pasta kenarlığı dahil
-
) - Bir boşluk karakteri olmalı
bu alanda bir alev ise kek sınır ve birinci mum baz (alevinden) arasında, her bir tarafında, hariç. Bir alev veya mum bazı kek kenarlarının üzerine gelmemelidir.
- Pastanın maksimum genişliği 9 karakterdir, bu nedenle sıra başına maksimum 5 mum vardır.
- Pastanızın 2 boyutlu olmasını istemediğimizden, biraz hacim vermek için ekstra 2 satır yüksekliğinde olması gerekir. Altta başka bir kenarlık ekleyin ve yine üstteki ASCII karakterlerini (
-
,|
ve+
) kullanarak köşeleri üstlerindeki çizgilere bağlayın .
Mum gereksinimleri:
- Taban
|
ve alevden oluşur , alev tabanın*
üzerine istiflenir. - Mumlar, diyagonal olarak hariç, doğrudan birbirine bitişik olmayabilir.
- Mumlar soldan sağa, sonra yukarıdan aşağıya doğru yerleştirilir, 5 maksimumda bir satırdadır.
(Not: Bir önceki satırda 5 mum olsaydı, bir sonraki satır muhtemelen 5 tane daha alamaz, çünkü o zaman bitişik olurlar.)
Ek Notlar:
- Pasta genişliği ilk sıradaki mum sayısına bağlıdır , ancak en az 5 karakter ve en fazla 9 karakter genişliğinde olmalıdır.
- Mumlar en üst sıradan başlayarak soldan sağa doğru doldurulur. Bir satır doluysa diğeri ilk satırın altındaki satırda başlamalıdır.
Giriş:
İstediğiniz sayıyı (makul) biçimde kabul edebilirsiniz.
Bu meydan okuma için, bu kadar yaşlı birini kabul etmeme rağmen , sayının 0 ile 2 31 (0 dahil değil) arasında olduğunu varsayabilirsiniz .
Çıktı:
Bir dizeyi döndürebilir veya elde edilen pastayı doğrudan çıkış konsoluna yazabilirsiniz.
Kurallar:
Örnekler:
Giriş: 8
+-----------+
| * * * * * |
| |*|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Giriş: 2
+-----+
| * * |
| | | |
| |
+-----+
| |
+-----+
Giriş: 12
+-----------+
| * * * * * |
| |*|*|*|*| |
| *|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
İyi şanslar!