首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >告诉我月相!

告诉我月相!
EN

Code Golf用户
提问于 2018-07-20 15:43:39
回答 2查看 681关注 0票数 11

挑战

给定月球的图像作为输入,输出月球的相位。

月球的

相位

您的程序将以png格式提供这些图像之一,您必须按照给定的方式输出该阶段:

代码语言:javascript
运行
复制
new moon

六转储

代码语言:javascript
运行
复制
waxing crescent

六转储

代码语言:javascript
运行
复制
first quarter

六转储

代码语言:javascript
运行
复制
waxing gibbous

六转储

代码语言:javascript
运行
复制
full moon

六转储

代码语言:javascript
运行
复制
waning gibbous

六转储

代码语言:javascript
运行
复制
third quarter

六转储

代码语言:javascript
运行
复制
waning crescent

六转储

输入

输入将是240 px到240 px png文件的路径,并将是上面的图像之一。

图像字节被保证是相同的。

最短代码获胜

EN

回答 2

Code Golf用户

发布于 2018-07-20 17:11:49

Node.js,145个字节

代码语言:javascript
运行
复制
p=>'third/waning/first/full/waxing/new'.split`/`[(s=require('fs').statSync(p).size)%418%6]+' '+'quarter/crescent/gibbous/moon'.split`/`[s%12%9%4]

在网上试试! (生成大小相同的虚拟文件)

怎么做?

我们只需查看文件的大小并将其转换为两个查找表中的索引。

第一部分:

代码语言:javascript
运行
复制
 phase | file size | mod 418 | mod 6 | mapped to
-------+-----------+---------+-------+-----------
   0   |    3451   |    107  |    5  | new
   1   |    6430   |    160  |    4  | waxing
   2   |    5144   |    128  |    2  | first
   3   |    7070   |    382  |    4  | waxing
   4   |    5283   |    267  |    3  | full
   5   |    7067   |    379  |    1  | waning
   6   |    4976   |    378  |    0  | third
   7   |    6337   |     67  |    1  | waning

第二部分:

代码语言:javascript
运行
复制
 phase | file size | mod 12 |  mod 9 |  mod 4 | mapped to
-------+-----------+--------+--------+--------+-----------
   0   |    3451   |     7  |     7  |    3   | moon
   1   |    6430   |    10  |     1  |    1   | crescent
   2   |    5144   |     8  |     8  |    0   | quarter
   3   |    7070   |     2  |     2  |    2   | gibbous
   4   |    5283   |     3  |     3  |    3   | moon
   5   |    7067   |    11  |     2  |    2   | gibbous
   6   |    4976   |     8  |     8  |    0   | quarter
   7   |    6337   |     1  |     1  |    1   | crescent
票数 9
EN

Code Golf用户

发布于 2018-07-20 17:31:52

Ruby,131个字节

代码语言:javascript
运行
复制
->f{f=open(f,'rb').read;%w[first third waxing new full waning][f[699].ord%7]+' '+%w[x moon gibbous quarter crescent][f[998].ord%5]}

通过蛮力发现的字节偏移--例如,以文件模块化7的699字节为例,给出了第一个查找表的索引。

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

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

复制
相关文章

相似问题

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