Trong một câu hỏi stackoverflow hiện đã bị xóa, ai đó đã đăng như sau:
Viết chương trình hoặc hàm để in các mẫu xen kẽ trong *
và #
dựa trên một số nguyên cho trước n
. Vài ví dụ:
Đầu vào: n=1
Đầu ra:
*
Đầu n=5
ra đầu vào :
*####
###**
***##
###**
*####
Đầu vào: n=8
Đầu ra:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
Vì nó trông giống như một thử thách chơi gôn khá thú vị, đây rồi.
Làm thế nào là những mô hình xây dựng?
Dòng đầu tiên bắt đầu bằng một dấu vết *
, theo sau là n-1
số lượng dấu #
.
Dòng thứ hai sau đó chứa hai *
, với n-2
số lượng hàng đầu #
.
Dòng thứ ba bắt đầu bằng ba *
, theo sau là n-3
số lượng dấu #
.
Vân vân.
Khi chúng tôi đạt đến mức trung bình ( n/2
), chúng tôi sẽ đếm lại một lần nữa với số lượng *
, có thể thấy trong các ví dụ trên.
GHI CHÚ rằng đối với các số đầu vào lẻ, cặp dòng nghịch đảo (đầu tiên và cuối cùng; thứ hai và tiếp theo cuối cùng, v.v.) hoàn toàn giống nhau. Trong n=5
ví dụ, dòng đầu tiên và cuối cùng là *####
; dòng thứ hai và tiếp theo là dòng cuối cùng ###**
.
Tuy nhiên, đối với các số đầu vào chẵn, cặp đường nghịch đảo được đảo ngược. Trong n=8
ví dụ, dòng đầu tiên và cuối cùng là *#######
và #######*
; dòng thứ hai và bên cạnh dòng cuối cùng là ######**
và **######
; Vân vân.
Quy tắc thử thách:
- Bạn có thể sử dụng bất kỳ hai ký tự có thể in riêng biệt thay vì
*
và#
. Bạn có thể sử dụngA
vàB
;3
và7
;<
và>
; vv Hãy nêu câu trả lời của bạn những gì bạn đã sử dụng. - Bạn có thể giả sử
n
sẽ là một số nguyên dương (>= 1
) - Bạn được phép xuất một danh sách / mảng chuỗi cho mỗi dòng hoặc ma trận ký tự 2D, thay vì in chúng thành STDOUT.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.
Các trường hợp thử nghiệm (từ đầu n=1
đến cuối n=10
)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*