清点序列
* * * *
拉格朗日计划
* * * *
清点序列

清点序列是一种反复依次清点自身所包含的各种数的数量的序列。 每次清点时依次统计当前序列中0的数量、1的数量、2的数量、。。。只要数量不是0就将其添加到序列的末尾,直到某个数的数量是0,此时在列尾添加0,然后再从0开始重新清点。 本题中该序列的初值是$0$,前20项及其生成的过程如下所示,其中每一行表示一次清点的过程:
              0 1 2 3 4 5
              -----------
              0
              1 1 0
              2 2 2 0
              3 2 4 1 1 0
              4 4 4 1 4 0
              
打印该序列的前1000项,每个数一行。

本题难度:



解答

按定义清点即可。

最终代码只有两行。

代码长度:68字节 vs. 全站第一:54字节。

a,i=[],0
while len(a)<1000:print(d:=a.count(i));a+=[d];i=(i+1)*(d>0)