Questions tagged «code-golf»

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

28
首先他们来了
马丁·尼莫勒(MartinNiemöller)的一首诗是“他们首先来了……”: First they came for the Socialists, and I did not speak out- Because I was not a Socialist. Then they came for the Trade Unionists, and I did not speak out- Because I was not a Trade Unionist. Then they came for the Jews, and I did not speak …

16
原始勾股三元组
(相关) 甲毕达哥拉斯三重是一个列表(a, b, c),其满足等式一个2 + B 2 = C 2。 甲原始毕达哥拉斯三(PPT)为其中a,b和c是全部互质(即,三个元件之间的唯一的公约数是1)。例如,(3, 4, 5)直角三角形是著名的原始毕达哥拉斯三重奏。 挑战 给定输入n,输出n第PPT张。要么, 给定输入n,输出第一个nPPT。 有多种方法可以对这些PPT进行排序,以形成排列良好的列表,从而确定哪个是n第一个。您可以选择所需的任何顺序,只要您可以证明(非正式地)算法可以生成所有可能的唯一PPT。例如,您的代码不应同时输出两者,(3,4,5)并且(4,3,5)由于它们是同一三元组的重复,请不要同时输出。 同样,只要声明使用的是代码,代码是零索引还是单索引都是可以的。 例子 在下面的示例中,我使用单索引,输出nth PPT,然后按最小c,然后最小a,然后最小的顺序进行排序b。 n | output 1 | (3, 4, 5) 2 | (5, 12, 13) 5 | (20, 21, 29) 12| (48, 55, 73) 规则 输入和输出可以任何方便的格式给出。 在您提交的文件中,请说明您的条目是如何排序的,以及您的条目是0索引还是1索引。 您选择的订单无法创建重复项。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 …

20
Interquine-两个程序在循环中互相输出
程序A在运行时输出程序B的代码,而B输出A的源代码。 要求: 两种程序中只有一种语言 程序不同。输出自身的一个程序不符合条件。 这两个程序都是非空的,或者长度至少为1个字节。源和输出中的尾随换行符都将被忽略 stdin已关闭。不要阅读任何内容(因此您无法阅读源代码并对其进行操作)。输出进入标准输出。 编辑: stdin连接到/dev/null。如果明确说明,您可以命令将其关闭。 不要使用random功能。 额外: 如果可能,给出解释 分数是总长度。如果尾随换行不影响程序,则不算在内。
29 code-golf  quine 

25
回旋数与二进制扭曲
警告:这不是“嘿,让我们在ASCII艺术中画蛋糕”挑战!请继续阅读;) 前一段时间是我的生日,现在我33岁。 因此,这种尴尬的社会传统包括邀请家人和朋友,在蛋糕上放数字蜡烛,唱歌和礼物。 33 -------- 我可以使用二进制系统来代替标准蜡烛,而不是数字:我将6根蜡烛放在蛋糕上,然后点燃2根蜡烛。 100001 -------- 我可以看到我这个年龄的十进制数和二进制数都是回文! 挑战 我想知道是否可以将其他任何数字放在装有蜡烛的蛋糕上,并且回文,十进制和二进制。 写一个程序/功能测试一个数是否在回文两者十进制和二进制。但是,等等,还有更多:在二进制中,测试的前导零计数! 输入值 一个十进制数x,我想测试,如果是生日回文0 <X <2 32 -1(是的,人在我住的尺寸很长) 输出量 Truthy如果它恰好满足这两个条件,否则Falsey: 数字的十进制表示形式是标准回文 数字的二进制表示形式是标准回文,添加前导零可能对此有所帮助 测试用例 1 > 1 => Truthy 6 > 110 (0110) => Truthy 9 > 1001 => Truthy 10 > 1010 (01010) => Falsey, 10 is not palindromic 12 …

30
输出输出打印给定输入的脚本的脚本
编写一段以字符串为输入的代码,并以运行时输出初始输入字符串的相同语言输出一段代码。 它必须能够处理字符AZ,az和0-9的任意组合。 Python中的示例: import sys print "print('" + sys.argv[1] + "')" 给定输入testing123,它将返回print('testing123')。 由于这是代码高尔夫,因此以字节为单位的最短答案将获胜。

29
鸡McNugget号码
描述 麦克唐纳鸡肉数字是可以表示为6、9或20之和的数字- 麦当劳出售的著名的麦克唐纳鸡肉盒子的初始尺寸。在该总和中,一个数字可能出现不止一次,6 + 6 = 12这样的数字也是如此,并且该数字必须“包含”至少一个上述大小。第一个Chicken McNugget编号为: 6 9 6 + 6 = 12 6 + 9 = 15 9 + 9 = 6 + 6 + 6 = 18 20 6 + 6 + 9 = 21 ... 挑战 您的任务是编写一个程序或函数,给定一个正整数,该程序或函数将确定该数字是否可以所描述的方式表示,因此就是Chicken McNugget数。然后,它应根据其决定输出真实或虚假的值。 测试用例 6 -> true 7 -> false …

26
楼梯号
阶梯数是一个正整数x,因此它的第n个数字(从最低有效数字开始索引的一个数字)等于x%(n +1)。有点麻烦,让我们来看一个例子。以7211311为例,如果我们将7211311的模残数取在2-8范围内,则得到以下结果: 7211311 % 2 = 1 7211311 % 3 = 1 7211311 % 4 = 3 7211311 % 5 = 1 7211311 % 6 = 1 7211311 % 7 = 2 7211311 % 8 = 7 这些是7211311的数字!因此7211311是一个楼梯号。 任务 当给定正数作为输入时采用的写代码将输出两个不同的值,如果该数字是一个阶梯数,则输出一个不同的值,如果不是,则输出另一个。 这是一场代码高尔夫竞赛,因此您的目标应该是最大程度地减少源代码中的字节数。 测试用例 以下是前13个楼梯编号: 1, 10, 20, 1101, 1121, 11311, 31101, …

8
执行重力排序
挑战 给定一个整数列表,说明如何进行重力排序。 重力排序 在重力排序中,将数字想象成星号行。然后,一切都掉了,新的行显然会被排序。让我们看一个例子: [2, 7, 4, 6]: ** ******* **** ****** ------- ** **** ******* ****** ------- ** | 2 **** | 4 ****** | 6 ******* | 7 注意,这几乎只是并行化冒泡排序。 确切规格 在每次迭代中,从第一行开始,从该行下方没有星号的每个星号开始,然后将其向下移动一行。继续这样做,直到对列表进行排序。 输入值 输入将是严格的正整数列表。 输出量 对于输出,必须输出每个步骤。您可以选择任何两个非空白可打印ASCII字符,一个为“星号”,另一个为分隔的“破折号”。星号行必须用某种标准的换行符分隔(例如\n或\r\f)。破折号行必须至少是最宽的行的宽度(否则星号会掉得太低!)。最底部的破折号是可选的。末尾可以使用换行符。允许在每行尾随空格。 测试用例 输入将被表示为列表,然后输出将立即在下面列出。测试用例用双换行符分隔。 [4, 3, 2, 1] **** *** ** * ---- *** ** …

28
整体建筑有多高?
这是一个整体输入的示例。此示例中有4个。 _ | | _ | | _ | | | | | | | | _ _| |_| |___| |____| |_ 第一个整体为4个单元,第二个为2,第三个为3,最后一个为1。 任务 您的程序应按从左到右的顺序输出整体的高度。输出格式可以是任何类型的列表或数组。 笔记 输入可以视为任何维字符串,字符串列表或字符列表。 这是代码高尔夫球,因此最低字节获胜。 您应假定整料始终具有相同的宽度,并且彼此之间的_距离始终至少为1 。 它们可以以任何高度,任何数量出现。 输入输出 _ | | _ | | _ | | | | | | | | _ _| |_| …

11
切哪条线
此任务是关于压缩和处理条件序列。 在“ 保持通话状态且没有人爆炸 ”游戏中,炸弹清除器必须在专家咨询有问题的《炸弹清除手册》的中继下,解除炸弹的武装。该挑战涉及手册第5页上介绍的“关于电线的主题”模块。解吸器带有彩色电线阵列。其中只有一个可以安全切割-其余的则引爆炸弹。 您的代码将根据“电线切割规则”下复制的手册中的说明,根据电线的数量和颜色确定要切割的电线的专家。 输入: 3、4、5或6种线色的有序列表或字符串,由大写字母表示: B: 黑色 U: 蓝色 R:红色 W:白色 Y: 黄色 请注意,蓝色U不是B。 输入还包含一个位(真/假或0/1),用于确定炸弹序列号的最后一位数字是否为奇数,这是某些规则中使用的条件。 您不应将导线数作为单独的输入,而应从列表或颜色字符串中得出。您可能会在列表或字符串的颜色后加上一个终止符,如果您的语言无法说出它的长度。该终止符应为不编码附加信息的固定值。 输出: 1到6的数字,指示要剪断的电线。这可能不是零索引。 线切割规则:这些规则摘自废弃手册的第5页 3 wires: If there are no red wires, cut the second wire. Otherwise, if the last wire is white, cut the last wire. Otherwise, if there is more than …

30
它是一个折数字吗?
幻数是一个正好是三个不同素数的乘积。前几个Sphenic数字为30, 42, 66, 70, 78, 102, 105, 110, 114。这是OEIS中的序列A007304。 你的任务: 编写程序或函数以确定输入的整数是否为Sphenic数字。 输入: 0到10 ^ 9之间的整数,可以是也可以不是幻数。 输出: 真/假值,指示输入是否为幻数。 例子: 30 -> true 121 -> false 231 -> true 154 -> true 4 -> false 402 -> true 79 -> false 0 -> false 60 -> false 64 -> false 8 -> …

2
帮助吃豆人计算吃点数
在担心自己超重的吃豆人女士的建议下,吃豆人决定跟踪自己每天的吃豆点摄入量。帮助他计算迷宫中给定路径上的点点数! 迷宫 为了帮助您构建自己的迷宫编码,您可以在此处获取一些原始数据。 吃豆人的旅程 在此挑战的背景下,适用以下规则: 首先,好消息是:幽灵不在。 吃豆人总是在上图所示的位置开始比赛,向东方行驶。起始位置没有Pac-Dot。 只要他一直走直线路,他就会一直前进到下一个方块。 当他遇到90°转弯而没有其他可用路径(地图上的橙色正方形)时,他会自动而系统地转弯。 当他遇到路口时多个路径可用(地图上的绿色正方形)时,他可以沿相同的方向继续行驶(如果适用),也可以选择其他方向(包括掉头)。 当吃豆人穿过迷宫左中或右中出口的其中一个出口时,他立即在对面再次出现。 吃豆人会在他遵循的路径上吃掉所有吃豆点。一旦吃了一点点,就将其从迷宫中取出。 挑战 输入值 您将得到一个字符串,描述吃豆人在他将要到达的路口的行为。此字符串将由以下字符组成: L:向左旋转90度 R:向右旋转90度 F:前进(方向不变) B:向后走(掉头) 处理完所有字符后,Pac-Man在遇到的下一个路口停下来。 输出量 您必须打印或输出沿输入路径吃掉的点点数。 规则 您可以编写完整的程序或函数。 您可以输入大写或小写形式的字符串或字符数组。您也可以在中使用其他字符(每个方向只能使用一个字符)或整数[0 .. 9]。如果这样做,请在答案中明确指出。 您可以假定输入始终有效。(下面的jsFiddle将检测到错误,但您不应这样做。) 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 禁止出现标准漏洞。 暗示 存储迷宫的确切形状可能不是必需的,也不是最佳的。 测试案例和演示 可以在此jsFiddle中测试以下测试用例(或任何其他输入)。 1. Input : "" Output : 1 Comment: Pac-Man just advances to the first junction, eats …

5
看不到树木的森林
编写一个程序或函数来绘制一棵树,从而构建一个森林。 树木被画得像堆积金字塔。第一行(顶部)包含1树,下一行包含2(总计3),下一行包含3(总计6),依此类推。如果没有足够的树木来完成整行,请将其填充到左侧,将右侧的点留空。此外,较低级别的树由于其位置而略微重叠于较高级别的树。 这是一片森林 1 /\ //\\ ///\\\ || || 这是一片森林 2 /\ //\\ /\///\\\ //\\ || ///\\\|| || || 这是一片森林 3 /\ //\\ /\///\\\/\ //\\ || //\\ ///\\\||///\\\ || || || || 这是一片森林 4 /\ //\\ /\///\\\/\ //\\ || //\\ /\///\\\||///\\\ //\\ || || ///\\\|| || || || 这是一片大小的森林5(请注意,第五棵树的顶部覆盖了第一棵树的树干) /\ …

30
“相乘”两个字符串
这是受到我最近添加到我的语言Add ++中的功能的启发。因此,我将在Add ++中提交一个简短的答案,但如果获胜,我将不接受它(这不公平) 当您可以将数字相乘而不是字符串时,您不讨厌它吗?所以,您应该纠正它,对吗? 您将编写一个函数或完整程序,该程序或程序将两个非空字符串作为输入并输出它们的乘积形式。 您如何将字符串相乘?我会告诉你! 要相乘两个字符串,您需要两个字符串并比较每个字符。然后,将具有最高代码点的字符添加到输出中。如果它们相等,只需将字符添加到输出中即可。 不能保证字符串的长度相等。如果长度不同,则最后一个字符串的长度就是最短字符串的长度。输入将始终是小写字母,并且可以包含可打印ASCII范围(0x20 - 0x7E)中的任何字符,但不包括大写字母。 您可以以任何合理的格式输出,例如字符串,列表等。明智的是,在此挑战中整数不是输出的明智方法。 随着投入hello,和world!,这是它如何工作的 hello, world! w > h so "w" is added ("w") o > e so "o" is added ("wo") r > l so "r" is added ("wor") l = l so "l" is added ("worl") d < o so …
29 code-golf  string 

22
可以使用独特的硬币和/或纸币来实现此值吗?
编写一个程序,计算输入的货币值(是否为整数)是否可以由硬币和/或纸币的唯一组合表示,这意味着同一硬币/纸币不能多次使用。 您的程序应将一个值作为输入,并可以通过输入或通过您的语言等效数组来获取硬币/纸币值的列表。硬币/纸币的列表应该可以更改,因此,如果您使用常量,请确保在哪里定义了硬币/纸币。 您的程序应分别输出任何真实/虚假值。 请注意,输出硬币/纸币组成值的列表不是必需的。 例 使用英镑,(1.00英镑= 100和420.69英镑= 42069) coins = [1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000] 以下内容将输出为true: 6 (1, 5) 15 (10, 5) 88 (1, 2, 5, 10, 20, 50) 512 (500, 10, 2) 7003 (5000, 2000, 2, 1) 以下将输出false: 4 209 8889 4242424242 …
29 code-golf  math 

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.