您的任务是编写一个函数或程序,该函数或程序需要两个非负整数i和k (i≤k),并计算出如果您在一张纸上选择的基础上将从i到k (包括)的所有整数都写入了多少个零。输出这个整数,即零数,输出到stdout或类似值。
-30%如果还接受第三个参数b,则用整数基将数字写入其中。至少必须处理两个基地才能获得这一奖金。
i、k和可选的b。测试用例(在基础10中):
i k -> output
10 10 -> 1
0 27 -> 3
100 200 -> 22
0 500 -> 92这是密码-高尔夫;最少字节获胜。
发布于 2016-01-30 03:24:11
lambda a,b:`range(a,b+1)`.count('0')的戏法归功于泥鳅。
发布于 2016-01-29 20:36:42
'0,,u@xεjc解释:
'0,,u@xεjc
'0,,u push "0", i, k+1
@x swap i and k+1, range(i, k+1)
εjc join on empty string and count 0s在网上试试!
加值: 11.9字节
'0,,u@x,╗`╜@¡`Mεjc在网上试试!
解释:
'0,,u@x,╗`╜@¡`MΣc
'0,,u@x push "0", range(i, k+1)
,╗ push b to register 0
` `M map:
╜@¡ push b, push string of a written in base b
Σc sum (concat for strings), count 0s发布于 2016-01-30 21:50:26
我想“为什么不”,对吧?
DECLARE @i INT, @k INT SET @i = 100 SET @k = 200 WITH g AS (SELECT @i AS n UNION ALL SELECT n+1 FROM g WHERE n+1<=@k ) SELECT LEN(n) AS c FROM (SELECT STUFF((SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(n, 1, ''), 2, ''), 3, ''), 4, ''), 5, ''), 6, ''), 7, ''), 8, ''), 9, ''), ' ', '') FROM g FOR XML PATH ('')) ,1,0,'') n ) a OPTION (maxrecursion 0)友好的人:
-- CG!
DECLARE @i INT, @k INT
SET @i = 100
SET @k = 200
WITH g AS
(
SELECT @i AS n
UNION ALL
SELECT n+1 FROM g WHERE n+1<=@k
)
SELECT LEN(n) AS c FROM
(
SELECT
STUFF((SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(n, 1, ''), 2, ''), 3, ''), 4, ''), 5, ''), 6, ''), 7, ''), 8, ''), 9, ''), ' ', '')
FROM g FOR XML PATH ('')) ,1,0,'') n
) a
OPTION (maxrecursion 0)https://codegolf.stackexchange.com/questions/70455
复制相似问题