Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

7
不同底数的素数
挑战: 您将获得以10为底的数字。对于从10倒数到2的每个基数: 以原始输入数字为基数10的字符串,并删除该数字中对基数无效的所有数字。 解释在该基数中得到的数字字符串。如果给出1或0,则终止整个过程。 输出或打印其最大质数,以十进制数表示。 输出可以是最大素数的数组。 示例案例: 输入: 987654321 输出: 379721 10593529 1091 179 1493 293 19 7 交替: [379721,10593529,1091,179,1493,293,19,7] 这将打印的987654321最大素数因子,87654321 9 = 42374116 10,7654321 8 = 2054353 10,依此类推,直到其达到1 2,在那里它停止。

5
在所有方向上转到矩形的对角-更硬
这与这个问题本质上是一样的,只是难度更大。您将再次编写一个从矩形的左下角到右上角的程序。但是,这次允许对角线移动。 该程序将接受一个有序对(width, height),并将其用作矩形的尺寸。然后,您的程序将创建该解决方案的ASCII艺术形式(.用于一个空的正方形,#该解决方案的一部分以及X用于开始的正方形),并计算到达终点所需的移动次数。 例 输入: (5, 6) 输出: ....# ....# ...#. ..#.. .#... X.... Move count: 5 以字节为单位的最短答案胜出!

5
桥梁和火炬问题
高尔夫难题代码的灵感来自桥梁和火炬问题,其中d的人们必须在最短的时间内跨过桥梁的起点。 要注意的是,最多两个人可以一次过桥,否则桥将因他们的重量而压碎,这群人只有一根火炬可以通过桥。 整个拼图中的每个人都有指定的时间走过桥。如果两个人交叉在一起,那对人和最慢的人一样慢。 没有一定数量的人必须过桥。您的解决方案必须适用于d的任何值。 您无需为此问题使用标准输入,但是为了解释该问题,我将使用以下输入和输出格式进行解释。第一个数字d是桥梁开始处的人数。然后,代码将扫描d个数字,每个数字代表一个人的速度。 代码输出将是从桥的起点到桥的终点穿越每个人,同时满足前面说明的标准所需的最少时间。 以下是一些输入案例和输出案例以及第一个输入案例的说明。您可以根据这些信息派生算法,以尽可能少的代码字节来解决问题。 输入 4 1 2 5 8 输出 15 为了达到这一目标,人民必须以下列方式进行交往。 A and B cross forward (2 minutes) A returns (1 minute) C and D cross forward (8 minutes) B returns (2 minutes) A and B cross forward (2 minutes) 这是另一个测试用例,可以指导您逐步进行。 输入 5 3 1 …
17 code-golf 

13
好奇的素数公式
给定正整数n输出整数a和b(形成减小的分数a / b),使得: 其中p k是第k个素数(p 1 = 2)。 例子: 1 -> 3, 5 2 -> 12, 25 3 -> 144, 325 4 -> 3456, 8125 5 -> 41472, 99125 15 -> 4506715396450638759507001344, 11179755611058498955501765625 420 -> very long 允许概率素数检查,如果由于语言整数类型的限制而导致答案失败,也可以。 以字节为单位的最短代码获胜。

2
放大盒子
ASCII框如下所示: ++ +---+ +------+ +---+ +---+ ++ | | | | | | | | | | | | | | | | +-+ | | | | | | | | +-+ | | | | | | +---+ +---+ | | | | +--+ | | | | …

11
创建ABACABA城市
这是ABACABA的第三个城市: _ A|_| B|__| A|_|_ C|___| A|_| B|__| A|_| 它是由ABACABA序列组成的,该序列基本上是: A(第一次迭代) 地方B-AB 重复A-ABA(第二次迭代) 地方C-ABAC 重复ABA-ABACABA(第3次迭代) 这样你就知道了。 建筑物的高度(对应于下划线的数量)等于将字母转换为数字,例如A = 1,B = 2等 输入项 迭代次数1 <= n <= 26。 输出量 顺序n的ABACABA城市,包括行首的字母。

5
再次使这段代码说明
介绍 这里的大多数代码高尔夫球手在其提交的内容中添加了解释,因此更容易理解正在发生的事情。通常,代码行在左侧,相应的说明在右侧,带有某种分隔符。为了使外观漂亮,分隔符都在同一列上。同样,较长的说明文字通常也包含在下一行,因此读者不必水平滚动即可阅读所有内容。 但是,当您由于疯狂打高尔夫球而想要编辑此说明时,通常会花时间来重新整理您的说明。由于这是一项非常重复的任务,因此您需要为此编写一个程序。 挑战 给定几行带有说明的代码和一个分隔符,输出格式正确的带有说明的代码。 例 输入项 shM-crz1dc4。“ ANDBYOROF#z =输入 rz1#将输入转换为大写 cd#在空格处分割输入 c4。“ ANDBYOROF#从打包字符串中创建单词列表,该列表将被忽略 -#过滤掉那些词 HM#只取所有单词的首字母 s#将它们连接成一个字符串 输出量 shM-crz1dc4。“ ANDBYOROF#z =输入 rz1#将输入转换为大写 cd#在空格处分割输入 c4。“ ANDBYOROF#从打包字符串中创建单词列表,该字符串应为 #被忽略 -#过滤掉那些词 HM#只取所有单词的首字母 s#将它们连接成一个字符串 第一个可以找到该代码功能的cookie。 格式化算法 找到最长的代码行(不包括解释以及代码和分隔符之间的空格)。 在此代码行后添加5个空格,并在相应的分隔符后附加说明。现在这是参考线。 将每隔一行调整到该参考线,以使分隔符都在同一列中。 通过以下方式将所有超过93个字符的行换行: 找到最后一个单词,该单词的末尾位于第93列或更低的列。 将这之后的所有单词都包含在内,并用前导分隔符和正确的间距将其换行。这两个单词之间的空格必须删除,因此第一行以单词字符结尾,第二行以分隔符之后的一个字符开头。 如果结果行仍然超过93个字符,请再次执行相同操作,直到每行低于94个字符。 笔记 单词由非空格字符组成。单词由单个空格分隔。 自动换行始终是可能的。这意味着没有一个单词太长以至于不可能包装。 输入将仅包含可打印的ASCII,并且没有任何结尾的空格 分隔符每行只会出现一次。 尽管说明的长度可以是无限的,但分隔符和代码只能具有最大93 - 5 = 87字符长度的组合。5个字符是代码和分隔符之间的空格。代码和分隔符将始终至少一个字符长。 输入中可能包含空行。这些字符将永远不包含任何字符(如果将输入作为多行字符串,则换行符除外)。这些空行也必须出现在输出中。 每行都会有一些代码,分隔符和说明。空行例外。 …
17 code-golf  string 

5
巧克力数字
给定一个mby by nChocolate棒,将m,n输出将其分成mn1乘1 的方式数(每次中断发生在网格线上)。 顺序很重要。碎片也很明显,因此1 x 3巧克力棒两端的两个碎片是不相等的。 例如,对于2 x 2块,我们有: _ _ _ _ _ _ _ _ |_‖_| -> |‗| |_| -> |_| |‗| -> |_| |_| |_‖_| |_| |_| _ |_| _ _ |_| |_| |_| _ _ _ _ _ _ _ _ |_‖_| -> |_| |‗| …

11
递归2x2行列式
2 x 2矩阵的行列式 a b c d 由给出ad - bc。 给定尺寸为2 n x 2 n的数字矩阵,n≥1,输出通过递归计算每个2 x 2子块的行列式获得的结果,直到获得单个数字为止。 例如,给定输入 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 第一步之后,我们获得: (3*9 - 1*5) (4*6 - 1*2) = 22 22 (5*7 - 3*9) (5*3 - 8*9) …

8
螺旋排列序列
我们可以将自然数汇总为矩形螺旋: 17--16--15--14--13 | | 18 5---4---3 12 | | | | 19 6 1---2 11 | | | 20 7---8---9--10 | 21--22--23--24--25 但是现在我们将它们放置在矩形网格上,我们可以按不同的顺序展开螺旋线,例如顺时针方向向北开始: 17 16--15--14--13 | | | 18 5 4---3 12 | | | | | 19 6 1 2 11 | | | | 20 7---8---9 10 | …

6
将时间转换为字符串
问题 有一天,你的老板走到你身边,告诉你他需要知道时间。在您指着您头顶正上方的时钟后,他仍然坚持,并承认他患有严重的运动失调症,这导致他甚至无法在时钟上看到数字。当您仍然想知道无法看到数字的人如何经营一家公司时,他会告诉您“为它做些事情”,无论如何。 现在,您的任务是创建一个程序或函数,给定输入时间的小时和分钟(秒是可选的)(小时是基于24的),输出一个可读的英语句子,其中不包含数字。 不需要输出秒。 例如08:45:15应该输出quarter to nine o'clock AM 测试用例 00:00:00 > twelve night 12:00:00 > twelve noon 06:00:00 > six o'clock AM 18:00:00 > six o'clock PM 06:15:00 > quarter past six o'clock AM 18:45:00 > quarter to seven o'clock PM 11:30:00 > half past eleven o'clock AM 13:22:00 …

6
翻译Glypho程序
给定任何有效Glypho程序的输入,输出其“人类可读”的对应内容。 Glypho是一个有趣的esolang创意: 此处提供了指令参考。对于每条指令,字符abcd代表组成每条指令的符号。a表示第一个唯一符号,b表示第二个唯一符号,依此类推。 aaaa ..... n NOP - no operation; do nothing aaab ..... i Input - push input onto top of stack aaba ..... > Rot - pops top stack element and pushes to bottom of stack aabb ..... \ Swap - swaps top two stack elements aabc ..... …

8
谁会赢得足球比赛?
美国足球锦标赛,超级碗50,今天晚上11:30发生UTC(你可以观看在线直播)。挑战是为了庆祝它。 在美式足球比赛中,两支球队竞争以获取最高分,并且有六种方法来得分。我们将给每个缩写: 射门得分 - FG:3分 触地得分 - TD:6分 加分 - XP:1分-只能在达阵后直接得分。 两点转换 - XD(就像加分,但更快乐):2分-只能在触地得分后直接得分。 安全 - S:2分 公平接球 - FCK:3分(非常罕见的比赛) 编写一个仅包含大写和小写这六个缩写的单行字符串的程序或函数。 该字符串表示足球比赛(或比赛的一部分)中的所有得分事件,其中大写字母属于一个团队,小写字母属于另一个团队。 您的工作是报告游戏的最终成绩,并指出谁赢得了表格输出 [score 1] [to] [score 2] 哪里: [score 1] 始终是两个分数中较大的一个(如果不相等),无论大写还是小写获胜。 [score 2] 是两个分数中较小的一个(如果不相等)。 [to]是TO大写团队获胜,to小写团队获胜,还是To平局。 例如:将所有得分事件在第四十九届超级杯 可以用字符串来概括 TDXPtdxpTDXPtdxpfgtdxpTDXPTDXP 大写字母是新英格兰爱国者,小写字母是 Seattle Seahawks。爱国者队得分28,老鹰队得分24,因此输出为: 28 TO 24 笔记 您的程序/函数必须支持任意输入,包括空字符串。 XP并且XD只会在之后发生TD。xp并且xd只会在之后发生td。 在某些情况下,您可能不会假设输入字符串开始或结束。 输入和输出中都可选地允许尾随换行符 …

18
求第n个交叉备用总和
给定单个正整数的输入,则输出对应于该整数的“交叉替代总和”。 以输入为例n=5。要查找交叉替换的总和,请首先创建一个宽度和高度的正方形网格,该网格n从左至右,从上至下依次从1每个位置开始并增加一个: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 然后,从构成“十字”(即,两个对角线合并)的网格中求和: 1 5 7 9 13 17 19 21 25 1 5 7 9 13 17 19 21 25 最后,取该序列的交替总和: 1+5-7+9-13+17-19+21-25 -11 另一个示例,for …

4
爆炸的猫!
挑战 您将要编写一个程序,接受长度为的字符串输入n: 将kthchar 放在空间的中心,在k = (n+1)/2。这将是地面零的位置。 将其余的非空白char随机放置在地面零附近。毕达哥拉斯与炭黑的距离不得超过n。 输出结果。 如果需要澄清,请参见下面的示例。 规则 有标准漏洞! I / O必须采用字符串形式。 输入将始终为奇数,以确保将中央字符置于零地。 每个有效输出的发生概率均应为非零。 这是代码高尔夫球;以字节为单位的最短代码胜出! 例 输入: qwert 爆炸的边界从地面零开始(x标记其余字符为有效位置): x xxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxexxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxx x 输出示例: t r q e w

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.