Şimdi silinmiş bir stackoverflow sorusunda, birisi aşağıdakileri gönderdi:
Belirli bir tamsayıya dayalı *
ve buna #
göre değişen desenler yazdırmak için bir program veya işlev yazın n
. Bazı örnekler:
Giriş: n=1
Çıkış:
*
Giriş n=5
Çıkışı:
*####
###**
***##
###**
*####
Giriş: n=8
Çıkış:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
Oldukça havalı bir kod golf mücadelesi gibi göründüğünden, işte burada.
Bu kalıplar nasıl oluşturulur?
İlk satır bir tek ile başlar ve *
bunu takip eden n-1
miktar izler #
.
İkinci satır daha sonra satır aralığı miktarıyla *
birlikte iki satır içerir .
Üçüncü satır üç ile başlar , onu takip eden miktar takip eder .
vb.n-2
#
*
n-3
#
Ortaya ( n/2
) ulaştığımızda, *
yukarıdaki örneklerde görülebilen miktar ile tekrar geri sayıyoruz .
Tek giriş sayıları için tersine çevrilmiş satır çiftinin (birinci ve son; ikinci ve sondan sonraki vb.) Tamamen aynı olduğunu unutmayın. Örnekte n=5
ilk ve son satırlar *####
; ikinci ve son satırlar ###**
.
Eşit giriş numaraları için ise tersine çevrilmiş satır çifti ters çevrilir. Örnekte n=8
ilk ve son satırlar *#######
ve #######*
; ikinci ve son satırların yanında ######**
ve **######
; vb.
Zorluk kuralları:
- Herhangi iki farklı kullanabilirsiniz yazdırılabilir yerine karakterleri
*
ve#
. Sen kullanabilirsinizA
veB
;3
ve7
;<
ve>
; Lütfen cevaplarınızı ne kullandığınızı belirtiniz. n
Olumlu bir tamsayı olacağını varsayabilirsiniz (>= 1
)- STDOUT'a yazdırmak yerine, her satır için bir karakter dizisi veya dizi dizisi veya 2B karakter matrisi çıkışına izin verilir.
Genel kurallar:
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için olabildiğince kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyonlar / yöntem uygun parametreler ve dönüş tipi, tam programlar ile kullanılabilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, cevabınız için bir açıklama eklemeniz önemle tavsiye edilir.
Test senaryoları (ilk n=1
aşamadan itibaren n=10
)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*