首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计数叠加序列

计数叠加序列
EN

Code Golf用户
提问于 2018-03-02 16:07:41
回答 2查看 79关注 0票数 3

给出一个堆栈高度的列表,计算这些高度通过一次堆叠块可以达到的数量。最短代码获胜。

测试用例:

代码语言:javascript
运行
复制
[2, 2] 6
[3,3,3] 1680
[1,5,9,1] 480480
[] 1
[10] 1
[2,2,2,10] 720720

参考Python实现:

代码语言:javascript
运行
复制
def stacking_count(stacks):
     if sum(stacks) == 0:
         return 1
     count = 0
     for i, n in enumerate(stacks):
         if n == 0:
             continue
         stacks[i] -= 1
         count += stacking_count(stacks)
         stacks[i] += 1
     return count
EN

回答 2

Code Golf用户

发布于 2018-03-02 16:13:33

Python 3,85字节

代码语言:javascript
运行
复制
f=lambda a:sum(f(a[:i]+[a[i]-1]+a[i+1:])for i in range(len(a))if a[i])if sum(a)else 1

在网上试试!

票数 0
EN

Code Golf用户

发布于 2018-03-02 16:17:22

果冻,6字节

代码语言:javascript
运行
复制
;@S!:/

在网上试试!

-感谢乔纳森·艾伦的7个字节

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/157051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档