Questions tagged «code-golf»

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

30
大数字:超分解
该问题已重做,请重新阅读。 超析因 超析因数是可以使用以下函数生成的数字序列: a(n) = n! ^ n! 最终值迅速上升。 旁注:这是OEIS中的条目A046882。同样与之相关的是超分解因子,它仍然非常庞大,但是序列较小:A002109 你的任务 您的任务是将这些数字转换为您的语言。你的程序将计算所有ultrafactorials之和从0到包容性 n。 输入项 您的程序可能只接受一个输入:一个数字,类似于要添加到总和中的最后一个a(n)超因子。确保输入为正或0。 输出量 只要某处有可见的数字总和,输出就完全取决于您。 规则 您可以假设所有整数,也就是所有整数输入,并使用整数计数循环产生一些结果。 测试用例 Input: -1 Output: Any kind of error (because -1! is undefined), or no handling at all Input: 0 Output: 1 Input: 1 Output: 2 Input: 2 Output: 6 Input: 3 …

9
赞美Puzles和Colf:压缩字符串
花了一些时间在这个网站上,我开始享受尽可能短的事情。这可能就是为什么我最近被包含多个相同字符的字符串冒犯的原因。您的工作是编写根据以下规则压缩给定字符串的函数或程序: 从0压缩开始,即寻找相同字符的第一对(最左边),中间还有0个其他字符。如果找到了这样的一对,请删除两个字符之一,然后通过执行另一个0压缩来重新启动算法。如果找不到这样的对,请继续下一步。示例: programming-C0-> programing aabbcc-C0-> abbcc test-C0->test 然后执行1压缩,即寻找第一对相同的字符,它们之间还有1个其他字符。如果找到了这样的一对,请删除其中的一个以及它们之间的所有字符,然后以0缩进重新开始。如果找不到这样的对,请继续下一步。示例: abacac-C1-> acac java-C1->ja 继续进行2-缩合,依此类推,直到n缩合,其中n为原始字符串的长度,每次在缩合除去一些字母后重新启动。示例: programing-C2-> praming abcdafg-C3->afg 生成的字符串称为压缩字符串,每个字符串最多包含一次。 输入: 可打印的ascii字符的小写字符串。 输出: 所述冷凝根据上述规则的字符串。 例子: examples -> es programming -> praming puzzles -> puzles codegolf -> colf andromeda -> a abcbaccbabcb -> acb if(x==1):x++ -> if(x+ fnabnfun -> fun abcdefae -> abcde 详细示例以阐明算法的工作原理: fnabnfun …
25 code-golf  string 

30
现在是时候挑战时钟了!
我希望您为我制造一个时钟,以这种格式显示时间: 18 ---------- 19 -------------------------------------------------- 这将显示“ 18:10”。当前小时和下一个小时显示在该行的前面,后跟一个空格和一些破折号:在第一行中,该小时中经过的分钟数,第二行显示了还有多少分钟在这个小时内去。 澄清 时钟应显示系统时间。如果从其他来源获取时间更方便,那也很好。它可能不作为输入提供。 在18:00,最上面的行是18(允许但不要求尾随空格) 在18:59的底线是19 - <10小时可以用0(01 -----)或右对齐( 1 -----)预先填充。即使破折号从正确的位置开始(1 -----无效),也不允许左对齐的一位数字。 时钟应以24h格式显示小时。 尽管它被称为24h格式,但实际上没有24。在第23小时内,第二行以00或开头 0。 显示至少需要每分钟更新一次,但这不必在精确的00几秒钟内进行。如果方便的话,您可以更频繁地/连续地进行更新,但是结果当然仍然必须清晰可辨-屏幕上不会出现任何拖尾现象。 输入项 没有。 输出量 如上所述。两行都允许使用尾随空格将时钟填充到60位置,还允许尾随换行符。 在显示下一分钟时,需要清除屏幕:使用清除屏幕命令或添加不少于30个换行符。 附加规则 禁止出现标准漏洞 代码高尔夫,最短答案(以字节为单位)获胜。

14
破碎的凯普斯基凯·菲亚斯科
您的一些员工的Capslock键已损坏,而您更换它们太便宜了。通过创建最短的程序来纠正他们的工作来帮助他们!只需将给定字符串中的每个字符从大写字母转换为小写字母,反之亦然...但这是有误的! 您也对圣诞节感到非常兴奋!因此,您将留下一个微小的“错误”,该错误无法纠正Christmas(不区分大小写)序列中的字母。 输入项 对于输入,您将使用一个单个字符串(或字节数组),其中可能包含0x20和0x7e(- ~)之间的换行符和ascii 。您无需担心回车符或字符串中是否包含其他任何字符。 输出量 输出应仅包含提供的字符串,并且将大写和小写字符互换(当然还有圣诞节错误!)。它最多可以包含一个额外的尾随空白。 圣诞虫 让我们用一个例子来解释一下: Input: i CAN HARDLY WORK LIKE THIS please GET ME A NEW KEYBOARD FOR cHRISTMAS Output: I Can HaRdly work lIke thiS PLEASE geT Me A new keyboard for ChriStmas can包含“ c”,这是圣诞节的首个字母,因此不会更改。in中的下一个字母Christmas是“ h”,它在in中hardly(也包含“ r”),因此不会更改,依此类推。Christmas本身只有一个字母不变,因为到代码到达那里时,它实际上正在寻找“ s”,而不是“ c”。 一旦找到序列,它应该从“ c”重新开始,并再次开始迭代Christmas。因此ChristmasChristmas将保持不变。 测试用例 Input: …
25 code-golf  string 

9
HexaGolf:字词
另见:Rotatagons 挑战 给定一个字符串作为输入,输出其字形。 字角 字形是表示六边形字符串的一种方式。现在,让我们从字符串创建一个wordagon hexa: 首先,从字符串中的第一个字符开始,然后将其放置在中心: h 然后,将字符串中的下一个字符添加并添加一个六边形层: e e e h e e e 然后,添加下一层: x x x x e e x x e h e x x e e x x x x 最后,添加最后一层: a a a a a x x x a a x e e …

30
阶乘和
挑战在于计算数字阶乘的数字总和。 例 Input: 10 Output: 27 10!= 10×9×...×3×2×1 = 3628800,数字10的数字总和!是3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 您可以期望输入是大于0的整数。输出可以是任何类型,但是答案应以编码语言的标准为基础。 测试用例: 10 27 19 45 469 4140 985 10053 注意:某些语言不能支持32位以上的整数;对于这些语言,您将不需要计算大量的阶乘。 OEIS链接在此感谢Martin Ender 这是代码高尔夫球,因此字符中最短的代码将获胜!

8
排列鸽洞原理
在数独游戏中,许多玩家喜欢“铅笔”每个方格中可能出现的数字: 上面的行可以表示为数组: [[1,2,9], [6], [5], [7], [1,2,9], [1,2,9], [3], [1,2,4], [8]] 现在,请注意只有一个地方4可以去。这有效地使我们将上面的列表简化为: [[1,2,9], [6], [5], [7], [1,2,9], [1,2,9], [3], [4], [8]] 这项挑战的目的是列出排列中可能的数字,并推断出可以消除的可能性。 再举一个例子,假设您具有以下可能性: [[0,1,3], [0,2,3], [1,2], [1,2]] 最后两个位置必须用1和2填充。因此,我们可以从数组的前两个元素中删除那些可能性: [[0,3], [0,3], [1,2], [1,2]] 再举一个例子: [[0,1,2,3], [0,2], [0,2], [0,2]] 它不可能从上述可能性构造排列,因为只有1两个位置1和3,和你想返回一个空数组。 您需要输入可能性列表,并在消除最大可能性之后输出其余可能性。 如果不可能使用特定的数组,则需要返回一个空数组,或者返回其中一个子数组为空的数组。 您可能会假设数组的格式正确,并且至少包含1个元素。 给定大小数组N,您可以假设子数组中的数字始终在范围内[0:N),并且N <= 10 您可能无法假设从0到的每个数字N-1都会出现 您可以假设单个子数组中的数字是唯一的。 如果子数组仅包含一个可能性,则可以在数组中或单独表示该可能性。 [[1],[2],[0]],[1,2,0],[[1,2],0,[1,2]]都是有效的。 您可以以合理的字符串格式或列表/数组格式接受数组。 子数组可以按任何顺序排列。 …

22
PKCS#7填充验证
在密码术中,PKCS#7填充是一种填充方案,它添加了字节数N≥1,其中每个添加字节的值等于N。 例如,Hello, World!具有13个字节的,以十六进制表示如下: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 如果我们选择将PKCS#7填充长度为16,则结果为: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 03 03 03 如果我们选择填充长度为20,则结果为: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 07 07 07 …

18
转换为Bibi-binary
Bibi-binary是由Boby Lapointe发明的一种数字系统,用于以字母表示数字,发音听起来很有趣。 您的任务是将十进制数转换为Bibi-binary! 转换次数 一个数字将转换为基数16(十六进制),并且每个字符都用其Bibi二进制名称代替: 0 = HO 1 = HA 2 = HE 3 = HI 4 = BO 5 = BA 6 = BE 7 = BI 8 = KO 9 = KA A = KE B = KI C = DO D = DA E = DE …

24
计算袋鼠序列
背景故事 免责声明:可能包含有关袋鼠的虚假信息。 袋鼠穿越了几个发展阶段。随着年龄的增长和力量的增强,他们可以跳得更高和更长,并且在饥饿之前可以跳更多次。 在第1阶段,袋鼠很小,根本无法跳跃。尽管如此,还是不​​断需要营养。我们可以这样表示第1阶段袋鼠的活动模式。 o 在阶段2中,袋鼠可以跳一点,但饿之前不能超过2跳。我们可以代表一个阶段2这样袋鼠的活动模式。 o o o o o 在第2阶段之后,袋鼠会迅速改善。在随后的每个阶段,袋鼠都可以跳得更高一点(在图形表示中为1个单位),并且是原来的两倍。例如,第3阶段袋鼠的活动模式如下所示。 o o o o o o o o o o o o o o o o o 所有这些跳跃都需要能量,所以袋鼠在完成每种活动模式后都需要营养。所需的确切数量可以如下计算。 在阶段n袋鼠的活动模式中为每个o分配高度,即从1到n的数字,其中1对应地面,n对应最高位置。 计算活动模式中所有高度的总和。 例如,阶段3袋鼠的活动模式包括以下高度。 3 3 3 3 2 2 2 2 2 2 2 2 1 1 1 1 1 …

15
拼写单词算术
我们都已经看到过这些在线“算术”,如下所示: Think of a number, divide by 2, multiply by 0, add 8. 而且,通过魔术,每个人最终都得到8! 语言 让我们定义一种使用上面文本的语法的编程语言,称为“ WordMath”。WordMath脚本遵循以下模板: Think of a number, <commandlist>. 这基本上意味着:将一个数字(作为来自STDIN的输入)作为初始累加器,对其执行所有命令,然后输出结果。 这些命令由定界符,(逗号+空格)分隔。有效的命令是(注意,它#代表一个非负整数:): add #/ subtract #-添加/减去累加器的值。 divide by #/ multiply by #- floordiv /乘累加器由给定的值。 subtract from #-与相似subtract,但acc = # - acc代替acc = acc - # repeat-再次执行最后一个命令。这不能是第一个命令,但是您必须支持多个连续的重复。 挑战 你的任务是创建一个程序或功能,这需要一个有效WordMath脚本作为输入和 …

17
ASCII大金字塔
介绍 公元前2600年,人们正在建造金字塔。他们已经成为金字塔的基础,但不知道如何继续。因此,他们打电话给您寻求帮助。 建造金字塔的规则非常简单。对于上一层以上的层,您需要做的就是遵循此分步指南: 切掉上一层的边缘。 在/角色上方,必须有一个\角色,反之亦然。这适用于除边缘以外的每个字符。 最左边的字符始终是a /,最右边的字符始终是\。 让我们以金字塔的基础为例: //\/\/\\ 我们切掉边缘,留下: /\/\/\ 我们将正斜杠更改为反斜杠,反之亦然: \/\/\/ 最左边的字符始终是a /,最右边的字符始终是a \,因此我们将其更改为: //\/\\ 我们将此层放在上一层: //\/\\ //\/\/\\ 我们继续进行操作,直到到达顶部(看起来像/\)。因此,最终我们得到: /\ //\\ //\/\\ //\/\/\\ 这是您需要输出的。 任务 给定金字塔的基础(长度大于3),输出整个金字塔。您可以放心地假设最左边的字符是/,最右边的字符是\。您还可以假设基础的长度始终是偶数。允许使用尾随空格。只要金字塔保持原位,也可以使用前导空间。允许使用1个尾随和1个前导换行符。 测试用例 Input: /\\\ Output: /\ /\\\ Input: //\\///\/\ Output: /\ /\\\ /\///\ ///\\\/\ //\\///\/\ Input: /////////////\ Output: /\ /\\\ /////\ /\\\\\\\ /////////\ …

8
打高尔夫球
小时候,我经常玩纸牌游戏“ 高尔夫 ”。您应该选择接受的挑战是计算高尔夫球手的得分。由于此纸牌游戏1有9000多种版本,我们将遵循我记得玩的规则。 游戏规则) 您以6张牌结束一轮比赛,并且希望获得尽可能少的积分。 不使用小丑。 A和2分别得-1和-2分。 杰克和国王都得0分。 3到10张卡片的面值是值得的。但是,当您将它们配对时,它们将被取消。例如,一个5代表5分,但是两个5代表零。三个5代表5分(因为前2个配对,但第3个不是。),四个5代表0(因为共2个配对)。 皇后区值15分。皇后不能取消,例如2个皇后价值30分。 规则(挑战) 输入将是一个整数数组,或6个单独的整数。您更喜欢哪一个。1代表一张ace,2-10代表2-10,Jack,Queen和King代表11、12和13。输出是根据上述规则的一手牌得分。您可以放心地假设所有输入均有效,例如,没有数字出现超过4次,并且所有数字都在范围内[1, 13]。输入和输出可以采用任何合理的格式。 测试IO: [11, 10, 3, 1, 2, 2] --> 8 [4, 5, 5, 3, 8, 7] --> 22 [2, 2, 2, 2, 1, 1] --> -10 (The lowest score possible) [12, 12, 12, 12, 10, 9] --> 79 …

28
#Hashtag_or_not
在此代码高尔夫挑战赛中,您将验证标签! #What_your_code_should_do 输入是一个字符串。如果它是有效的标签,则输出一个真实值,否则输出一个虚假值。 如果...,我们将字符串定义为有效的标签。 它以井号(#)开头。 井号后面没有数字(例如#2016USElection,不是有效的井号)。 它没有任何“特殊字符”(即,不是字母,下划线(_)或数字的任何字符)。 您可以假定输入仅包含ASCII字符。(如果我们也执行Unicode,那将是不公平的。) #规则 基本的代码高尔夫球规则适用。 #例子 真相: # #e #_ABC #thisisanunexpectedlylongstringxoxoxoxo #USElection2016 虚假: Hello, World! #12thBday #not-valid #alsoNotValid! #!not_a_hash

30
霍夫施塔特Q序列
定义 a(1)= 1 a(2)= 1 对于n> 2的a(n)= a(na(n-1))+ a(na(n-2))其中n是整数 任务 给定正整数n,生成a(n)。 测试用例 n a(n) 1 1 2 1 3 2 4 3 5 3 6 4 7 5 8 5 9 6 10 6 11 6 12 8 13 8 14 8 15 10 16 9 17 10 18 11 …

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.