首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >堆放岩石

堆放岩石
EN

Code Golf用户
提问于 2021-08-17 04:53:04
回答 2查看 1.8K关注 0票数 28

这是一块石头:

代码语言:javascript
复制
*

石头可以堆放。除了最底层的岩石外,每块岩石都必须放在另外两块岩石上,如下所示:

代码语言:javascript
复制
 *
* *

你有一堆石头,而你的老板希望你把它们对称地堆放起来,占据尽可能少的水平空间。

你的挑战是把许多岩石作为输入,输出许多岩石对称地堆放在尽可能小的基座上。

例如,通过输入4

你不能把一堆4块岩石装在2的底座上。如果底座是3,你可以,但你不能使它对称--你最终会得到这样的结果

代码语言:javascript
复制
 *
* * *

所以你需要一个4的基础尺寸,它消耗了你所有的岩石,所以结果是:

代码语言:javascript
复制
* * * *

输出中允许任何尾随或前导空格,您可以使用任意两个不同的字符来代替*和。如果有多种方法可以将输入的岩石数对称地叠加在同一基座上,那么任何一种方法都是有效的。

评分

这是密码-高尔夫,最短的胜利!

测试案例

代码语言:javascript
复制
4 => 
* * * *

7 => 
 * * *
* * * *

8 =>
    *
   * *
* * * * *

9 => 
  * *
 * * *
* * * *

12 => 
  * * *
 * * * *
* * * * *

13 => 
    * *
 * * * * *
* * * * * *

or

  *     *
 * * * * *
* * * * * *

17 =>
   *   *
  * * * *
 * * * * *
* * * * * *

19 => 
   *     *
  * *   * *
 * * * * * *
* * * * * * *

Or
      *
     * *
    * * *
 * * * * * *
* * * * * * *

20 =>
    * *
   * * *
  * * * *
 * * * * *
* * * * * *

56 => 
      * * * * *
     * * * * * *
    * * * * * * *
   * * * * * * * *
  * * * * * * * * *
 * * * * * * * * * *
* * * * * * * * * * *

or 
         * *
        * * *
     * * * * * *
    * * * * * * *
   * * * * * * * *
  * * * * * * * * *
 * * * * * * * * * *
* * * * * * * * * * *
EN

回答 2

Code Golf用户

发布于 2021-08-17 21:47:14

JavaScript (ES7),186个字节

一个相当天真的搜索,但相当快。

代码语言:javascript
复制
f=(n,W)=>(g=(w,x=2**w-1,o='',t=n,p=o,X=x)=>x?(i=t,s='',h=k=>k--&&(q=(x&X)>>k&1)|2*h(k,i-=q,s+=' X'[q]+' '))(w)==x&&g(w-1,x&x/2,p+s+`
`+o,i,p+' ')||o&&g(w,x-1,o,t,p,X):!t&&o)(W)||f(n,-~W)

在网上试试!

票数 3
EN

Code Golf用户

发布于 2021-08-19 19:58:11

木炭,54字节

代码语言:javascript
复制
NθW∨›θ⁰⁼θ±²≧⁻L⊞Oυωθ↘Eυ⭆⁻Lυκ§ *⎇∧κλ∨﹪責∧θ⁼²⁺κλ›⊕⊗⁺κλ±θ

在网上试试!链接是详细的代码版本。说明:使用@LevelRiverSt的观察结果。

代码语言:javascript
复制
Nθ

输入n

代码语言:javascript
复制
W∨›θ⁰⁼θ±²≧⁻L⊞Oυωθ

n中减去越来越多的岩石,直到结果不再为正,但如果结果恰好是-2,则减去下一个数字。

代码语言:javascript
复制
↘Eυ⭆⁻Lυκ§ *⎇∧κλ∨﹪責∧θ⁼²⁺κλ›⊕⊗⁺κλ±θ

打印一个三角形的岩石,但在必要时从两边对称移除岩石,如有必要,也从最顶部岩石的正下方移除岩石。

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

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

复制
相关文章

相似问题

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