这是帕斯卡的辫子:
1 4 15 56 209 780 2911 10864 40545 151316 564719
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719
我完全弥补了。据我所知,布莱斯·帕斯卡(Blaise Pascal)没有辫子,如果他这样做,那可能是由头发而不是数字制成的。
它的定义如下:
- 第一列
1
中间有一个。 - 第二列
1
的顶部和底部都有一个。 - 现在,我们在将数字放在中间或将数字的两个副本放在顶部和底部之间进行交替。
- 如果数字位于顶部或底部,则为两个相邻数字的总和(例如
56 = 15 + 41
)。如果您稍微倾斜头部,这就像是Pascal三角形中的一个台阶。 - 如果数字在中间,则它将是所有三个相邻数字的总和(例如
41 = 15 + 11 + 15
)。
您的任务将是打印编织物(的一部分)。
输入值
您应该编写一个程序或函数,该程序或函数接收一个整数n
,给出要输出的最后一列的索引。
您可以选择第一列(仅1
在中间一行打印一个)对应n = 0
还是n = 1
。在所有可能的输入中,这必须是一个一致的选择。
输出量
将Pascal的辫子输出到第n
th列。空格必须与上面的示例布局完全匹配,除了可以用空格将较短的行填充到较长的行的长度之外,还可以选择输出单个尾随换行符。
换句话说,每一列都应与该列中的数字(或一对相等的数字)完全一样宽,连续列中的数字不应重叠,并且各列之间不应有空格。
您可以将结果打印到STDOUT(或最接近的替代品),或者如果编写函数,则可以返回内容相同的字符串或三个字符串的列表(每行一个)。
更多详情
您可能会假设它n
不会小于第一列的索引(因此不会小于0
或1
取决于您的索引)。您还可以假定辫子中的最后一个数字小于256或您的语言的本机整数类型可表示的最大数字,以较大者为准。因此,如果您的本机整数类型只能存储字节,则可以假定最大n
为9
或10
(取决于您使用的是基于0还是基于1 n
),如果可以存储带符号的32位整数,n
则最大为33
或34
。
适用标准代码高尔夫球规则。最短的代码获胜。
信息系统
这是一些相关的OEIS链接。当然,这些包含破坏者,用于以不同方式在编织物中生成数字:
测试用例
这些测试用例使用1基索引。每个测试用例有四行,第一行是输入,其余三行是输出。
1
1
---
2
1
1
1
---
3
1
1 3
1
---
5
1 4
1 3 11
1 4
---
10
1 4 15 56 209
1 3 11 41 153
1 4 15 56 209
---
15
1 4 15 56 209 780 2911
1 3 11 41 153 571 2131 7953
1 4 15 56 209 780 2911
---
24
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560