Dalam sebuah pertanyaan stackoverflow sekarang dihapus, seseorang diposting berikut:
Menulis sebuah program atau fungsi untuk mencetak pola alternating di *dan #berdasarkan bilangan bulat tertentu n. Beberapa contoh:
Input: n=1
Output:
*
Input n=5
Output:
*####
###**
***##
###**
*####
Input: n=8
Output:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
Sejak itu tampak seperti cukup keren kode-golf tantangan, ini dia.
Bagaimana pola-pola ini dibangun?
Baris pertama dimulai dengan satu *, diikuti oleh n-1jumlah tertinggal #.
Baris kedua kemudian berisi dua *, dengan n-2jumlah pemimpin #.
Baris ketiga dimulai dengan tiga *, diikuti oleh n-3jumlah tertinggal #.
dll.
Setelah kami sampai di tengah ( n/2), kita menghitung kembali lagi dengan jumlah *yang dapat dilihat pada contoh di atas.
CATATAN bahwa untuk nomor masukan aneh pasangan yang terbalik garis (jadi pertama dan terakhir; kedua dan di sebelah terakhir; dll) yang persis sama. Dalam n=5contoh, baris pertama dan terakhir adalah *####; baris kedua dan berikutnya adalah ###**.
Untuk nomor masukan bahkan namun pasangan yang terbalik dari garis terbalik. Dalam n=8contoh, baris pertama dan terakhir adalah *#######dan #######*; baris kedua dan berikutnya adalah ######**dan **######; dll.
Aturan tantangan:
- Anda dapat menggunakan dua yang berbeda dicetak karakter bukan
*dan#. Anda bisa menggunakanAdanB;3dan7;<dan>; dll Silahkan negara dalam jawaban Anda apa yang telah Anda gunakan. - Anda dapat mengasumsikan
nakan menjadi bilangan bulat positif (>= 1) - Anda diperbolehkan untuk output daftar / array string untuk setiap baris atau matriks 2D karakter, bukannya mencetak mereka untuk STDOUT.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, tambahkan link dengan tes untuk kode Anda.
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
Test case (pertama n=1melalui n=10)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*