在一个已删除的stackoverflow问题中,有人发布了以下内容:
编写程序或函数以在给定的整数内*
并#
基于给定的整数打印交替的图案n
。一些例子:
输入:n=1
输出:
*
输入n=5
输出:
*####
###**
***##
###**
*####
输入:n=8
输出:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
由于这看起来像是一个很酷的代码挑战,所以就在这里。
这些模式是如何建立的?
第一行以单行开头*
,后跟n-1
大量#
。
然后,第二行包含两个*
,n-2
前导量很大#
。
第三行以3开头*
,后跟n-3
数量#
。
等等
到达中间(n/2
)后,我们再次以*
,可以在上面的示例中看到。
注意,对于奇数输入数字,相反的线对(因此,第一和最后;第二和最后一个等;等等)完全相同。在n=5
示例中,第一行和最后一行是*####
;第二行和最后一行是###**
。
然而,对于偶数输入数字,相反的一对线是相反的。在n=8
示例中,第一行和最后一行是*#######
和#######*
; 第二行######**
和倒数第二行是和**######
; 等等
挑战规则:
- 您可以使用任意两个不同的可打印字符来代替
*
和#
。您可以使用A
和B
;3
和7
;<
和>
; 等等。请在回答中说明您使用过的内容。 - 您可以假设
n
将为正整数(>= 1
) - 您可以为每行或2D字符矩阵输出字符串列表/数组,而不是将其打印到STDOUT。
通用规则:
- 这是代码高尔夫球,因此最短答案以字节为单位。
不要让代码高尔夫球语言阻止您使用非代码高尔夫球语言发布答案。尝试针对“任何”编程语言提出尽可能简短的答案。 - 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。
- 默认漏洞是禁止的。
- 如果可能的话,请添加一个带有测试代码的链接。
- 另外,强烈建议为您的答案添加说明。
测试案例(第一n=1
至n=10
)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*