首页
学习
活动
专区
圈层
工具
发布

冠百冠
EN

Code Golf用户
提问于 2018-09-08 08:10:34
回答 12查看 2.1K关注 0票数 26

我注意到某个游戏有一个特殊的生命计数器,它没有在999停下来,而是获得了一个新的数字--下一个数字是“100冠”或“00”。99之后是百冠(0),在9之后的最后一个数字是冠100冠或,十进制为1110。

您的任务是编写一个程序或函数输出这个计数器。

给定一个来自范围[0,1110]的整数(两端都包括在内),输出三个字符串,其中

  • 每个字符都来自列表0123456789
  • 花冠()只能显示为最左边的字符,或者在左边有一个花冠时
  • 当这个数字被读取为十进制数,但以10的冠冕计数时,您将得到原来的数字。

测试用例

代码语言:javascript
复制
   0 → "000"
  15 → "015"
 179 → "179"
 999 → "999"
1000 → "00"
1097 → "97"
1100 → "0"
1108 → "8"
1110 → ""

您可以使用任何非十进制字符代替皇冠。为了鼓励漂亮的打印,冠字符(UTF8字节序列"\240\159\145\145")被计算为一个字节而不是四个字节。您的程序不必对超出有效范围的数字工作。

这是密码-高尔夫,所以最短的答案,以字节来衡量,就赢了!

EN

回答 12

Code Golf用户

发布于 2018-09-08 09:37:02

JavaScript (Node.js),50字节

代码语言:javascript
复制
f=(n,p=1e3)=>n<p?(n+p+'').slice(1):'#'+f(n-p,p/10)

在网上试试!

TIO是基于Arnauld的回答。以#的身份出现。

票数 12
EN

Code Golf用户

发布于 2018-09-08 09:41:20

Python 2,53字节

阿纳尔德发送-22字节的Hats。尽管如此,递归仍然占上风。

代码语言:javascript
复制
lambda k:re.sub("1+0","CCC",`k+10000`)[-3:]
import re

在网上试试!

Python 2,51字节

这反而实现了促甲状腺激素递推法。由于卵子,保存了2个字节。

代码语言:javascript
复制
f=lambda n,p=1000:n/p and'C'+f(n-p,p/10)or`n+p`[1:]

在网上试试!

票数 5
EN

Code Golf用户

发布于 2018-09-08 18:08:43

Python 2,52字节

代码语言:javascript
复制
lambda n:['%03d'%n,'%3s'%`n`.lstrip('1')[1:]][n>999]

在网上试试!

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

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

复制
相关文章

相似问题

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