大多数人都熟悉这种数羊入睡的方法。有一群绵羊,其中一些在篱笆上跳跃,而您在绵羊跳跃时数数。据说,这可以使您的思维平静下来,并使您进入类似睡眠的状态,从而使您入睡。
这是一个面向右侧的ASCII绵羊,等待被计数:
'00^>
||
这是跳过篱笆的ASCII绵羊:
'00^>
/\
++
这是一个已被数过的朝左的人:
<^00'
||
挑战
给定两个输入整数,n
和m
,n > 2
描述总共有多少只绵羊,并m > 0
说出已经计数了多少只绵羊,输出一个ASCII艺术表示形式来计数要入睡的绵羊。
现在来看一下:
- 由于绵羊所处的围栏大小,第一排只能容纳最多的
10
绵羊,这还不包括当前跳跃的绵羊,绵羊也必须始终位于第一排。 - 随后的各行不能将羊放在各自的笔外(第二行的左边羊不能比第一行的羊多,右边的羊也不能多)。
- 如果
11
绵羊总数超过或等于总数,则第一行中必须包含10
跳跃的绵羊。 - 前导/尾随空格和绵羊之间的空格无关紧要,只要:
- 绵羊之间至少要有一个空白字符
- 所有字符都正确排列。
只要符合这些规则,绵羊的实际安排就取决于您的实现。
例子
例如,这是n=3
和m=1
,是最简单的情况。
'00^>
'00^> /\ <^00'
|| ++ ||
这是n=11
和m=6
,可以容纳在一条水平线上的最多的绵羊。
'00^>
'00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00'
|| || || || ++ || || || || || ||
这是一个不同的示例,使用n=11
和m=1
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00'
|| || || || || || || || || ++ ||
一个更大的例子n=30
和m=12
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> <^00' <^00'
|| || || || || || || || || ||
'00^> <^00' <^00'
|| || ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
这是一个与n=17
和的例子m=2
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || ||
这是一个与n=19
和的例子m=3
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00'
|| || || || || || || ++ || || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || || ||
'00^>
||
请注意,所有这些都是示例。对于最后一个,您可能会在右侧创建垂直的绵羊阵列,这将使左侧可以容纳两行。或者,可能是右侧的2x2平方英寸的绵羊,也可以将左侧的绵羊放到两行中。等等。
I / O和规则
n=11
和m=9
n=11
这样0<m<=10
。这迫使您将所有的绵羊放在最上面一排,并且将动态数目的绵羊放在栅栏的左(n-1-m
)和右(m
)上,并且不能使用固定的笔大小。