这是一个简单的,咬合大小(字节大小?)的代码高尔夫球:给定一个小于10的正整数的非空列表,打印一个块对角矩阵,该列表按顺序指定块的大小。块必须由小于10的正整数组成。因此,如果给出输入
[5 1 1 2 3 1]
例如,您的输出可能是
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1
要么
1 2 3 4 5 0 0 0 0 0 0 0 0
6 7 8 9 1 0 0 0 0 0 0 0 0
2 3 4 5 6 0 0 0 0 0 0 0 0
7 8 9 1 2 0 0 0 0 0 0 0 0
3 4 5 6 7 0 0 0 0 0 0 0 0
0 0 0 0 0 8 0 0 0 0 0 0 0
0 0 0 0 0 0 9 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 0 0 0 0
0 0 0 0 0 0 0 3 4 0 0 0 0
0 0 0 0 0 0 0 0 0 5 6 7 0
0 0 0 0 0 0 0 0 0 8 9 1 0
0 0 0 0 0 0 0 0 0 2 3 4 0
0 0 0 0 0 0 0 0 0 0 0 0 5
或类似的东西。矩阵中的元素必须由(单个)空格分隔,行由(单个)换行分隔。任何行上都不能有前导或尾随空格。您可能会或可能不会打印尾随换行符。
您可以编写函数或程序,通过STDIN(或最接近的替代方法),命令行参数或函数参数以任何方便的字符串或列表格式(只要不经过预处理)输入。但是,与从函数返回的结果相反,必须将结果打印到STDOUT(或最接近的替代品)。
您不得使用旨在创建块对角矩阵的任何内置函数。
这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。
排行榜
我希望基于数组的语言(例如J和APL)在这里能占优势,但是我不希望这样会阻止人们尝试以他们选择的语言来尽力而为。因此,这里有一个堆栈代码片段,可按语言生成常规排行榜和获胜者概述。那么,为什么不尝试在后者上抢占一席呢?
为确保您的答案显示出来,请使用以下Markdown模板以标题开头。
# Language Name, N bytes
N
您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如:
# Ruby, <s>104</s> <s>101</s> 96 bytes
[:=/~]#<\
您的得分。同样,=/~@#<\
要减少两个额外的字节。