Questions tagged «code-golf»

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

30
阶乘结尾的零
编写一个程序或函数,该函数或函数在以n!10 为基数的末尾找到零的数目,其中n输入数字(采用任何所需的格式)是。 可以假定它n是一个正整数,也n!就是一个整数。中的小数点后没有零n!。同样,可以假定您的编程语言可以处理nand 的值n!。 测试用例 1 ==> 0 5 ==> 1 100 ==> 24 666 ==> 165 2016 ==> 502 1234567891011121314151617181920 ==> 308641972752780328537904295461 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。 意见书 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: …

30
因此管理垃圾
PPCG在某种程度上已经成为一种传统,一些用户通过字谜(通过重新排序旧字母而形成的新名称)临时更改其名称。 有时很难找出谁是谁。我可以使用一个程序或函数来判断两个短语是否是彼此的字谜。 挑战 程序或函数应该采用两个字符串,并且如果它们彼此是字谜,则应产生真实的结果,否则应为虚假的。 规则 输入将仅包含字母(ASCII 65至90和97至122),数字(ASCII 48至57)或空格(ASCII 32)。 字谜关系与大小写无关。所以“手臂”和“ RAM”是字谜。 空格也不计算在内。所以“键盘”和“吠叫哟” 允许所有内置 输入格式灵活(两个字符串,两个字符串的数组,包含两个短语的字符串以及合适的分隔符...) 代码高尔夫。最少的字节数获胜。 测试用例 真相: Lynn, Nyl N Digital Trauma, Tau Digital Arm Sp3000, P S 3000 Manage Trash So, Those anagrams 虚假 Calvins Hobbies, Helka Homba Android, rains odd In between days, bayed entwine Code golf, cod …

3
来信,动起来!
给定字符串,您必须按字母在字母表中的位置移动每个字母(从第一个字母开始)。如果到达字符串的末尾,则必须环绕。非字母不需要移动。 例: Dog D是字母表中的第四个字母,因此我们将其向右移动四个位置。环绕后,将字符串更改为oDg。o是第15个字母,(15 mod 3)= 0,因此它不会移动。g是第7个字母-(7 mod 3)= 1,因此字符串变为goD。 hi*bye h是第8个字母,将其移动8个位置- hi*bye=>i*hbye i是第9个字母,将其移动9个位置- i*hbye=>*hbiye b是第二个字母,将其移动2个位置- *hbiye=>*hiybe y是第25个字母,将其移动25个位置- *hiybe=>*hibye e是第5个字母,将其移动5个位置- *hibye=>*hibey 非字母不需要移动,但它们仍会占用空间。 cat => tca F.U.N => .F.NU mississippi => msiisppssii
35 code-golf  string 

30
镂空阵列
任务 这个挑战非常简单。您的输入是一个矩形的二维整数数组,大小至少为1×1。可以采用任何合理的格式。您的输出应为输入数组,但所有不在第一行或最后一行或列上的条目均设置为0。它必须与输入格式相同。 例如,如果输入数组是 67 4 -8 5 13 9 13 42 4 -7 1 1 3 -9 29 16 99 8 77 0 那么正确的输出是 67 4 -8 5 13 9 0 0 0 -7 1 0 0 0 29 16 99 8 77 0 规则和计分 您可以编写完整的程序或函数,并且允许函数在适当位置修改输入而不是返回输入。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 它们被格式化为嵌套列表,以使复制粘贴更加容易。 [[3]] -> …

28
在Champernowne常数中找到数字
介绍 在基数10中,通过串联连续整数的表示来定义Champernowne常数。以10为底:0.1234567891011121314151617...依此类推。 您可以看到首次出现是15从20th小数点开始的: Position 0000000001111111111222222222233333333334444444444555555555566666666 1234567890123456789012345678901234567890123456789012345678901234567 ^ 0.1234567891011121314151617181920212223242526272829303132333435363738... ^^ 15 = position 20 第一次出现是45从4th小数点开始: Position 0000000001111111111222222222233333333334444444444555555555566666666 1234567890123456789012345678901234567890123456789012345678901234567 ^ 0.1234567891011121314151617181920212223242526272829303132333435363738... ^^ 45 = position 4 因此,任务很容易。给定一个非负整数,输出该整数在Champernowne常数中的位置。 规则 您可以提供功能或程序 这是代码高尔夫球,因此以最少的字节提交为准! 测试用例 Input: 20 Output: 30 Input: 333 Output: 56 Input: 0 Output: 11 (note that the 0 before the decimal point is …
35 code-golf  math  number 

10
压缩这些页码!
免责声明:虽然我现在已经出于娱乐目的而在此网站上停留了一段时间,但这是我的第一个问题,因此请原谅任何小错误。 背景 当给我们分配作业时,我的老师确实很烦人,并写出了我们必须单独处理的所有问题。因此,我花了很长时间来抄写我必须做的问题。我想让我的生活更轻松,我会给他发送一个程序,该程序可以使问题列表占用更少的空间。 写下页面或问题编号的列表时,我们用破折号表示范围。例如,19-21变为19, 20, 21。如果两者之间有间隔,则使用两个逗号分隔的范围:19-21, 27-31变为19, 20, 21, 27, 28, 29, 30, 31。 现在,您可能正在思考:“这似乎很琐碎”。实际上,这已经在这里和这里得到了解答。 但是,有一个陷阱。如果我们有一个相等的连续数字范围,则可以省去重复的数字。例如:15, 16, 17成为15-7和107, 108, 109成为107-9。作为奖励,如果最后一个连续的相等数字大1,并且上限的最后一个数字小于或等于下限,则可以省略以下内容(对不起,这听起来令人困惑;也许有些示例可以清除它) 。109-113变为109-3,因为最后一位低表示增加10位。 挑战 您的程序应通过输入获取整数列表(无论您的语言是标准语言还是函数)。您可以决定此列表是逗号分隔,空格分隔还是实际的列表/数组。 输出最短的方法(首先按范围数排序,然后按范围内的字符总和排序)以使用此表示法表示该列表。每个虚线范围必须在同一行上,但是范围可以用逗号或换行符分隔(允许使用尾随的换行符或逗号)。这些范围必须是有序的。 由于我们学校的Wi-Fi非常糟糕,我必须将文件制作得尽可能小才能发送给他。最短的代码(以字节为单位)获胜。 奖金 我的老师草率,所以有一些事情可以帮助他。多个奖金通过乘法叠加,例如-10%奖金(x 90%)和-25%(x 75%)奖金= 90%* 75%= x 67.5%(-32.5%奖金)。 有时他把它们放在错误的顺序(他不是数学老师)。如果您的程序可以接受未按最小到最大排序的整数,则收取-20%的奖金。 我们的书很奇怪,每一节都从-10开始计算问题。如果您的程序可以接受负数,则取-25%。 如果它接受较低的最后一位数字的奖金,该奖金增加10位,例如25-32减少到25-2,则获得-50%的奖金。 测试用例 In: 1, 2, 3, 4, 5 Out: 1-5 In: 3, 4, 5, 9, …

13
对像素排序
您的任务是创建一个给定输入图像的程序,该程序将创建相同大小的输出图像,其中所有像素均按十六进制值排序。 您的程序可能: 按从左到右的顺序对像素进行排序,然后再进行降序排列,或者先按列进行排序,然后再按右顺序进行排序。无论如何,左上方的像素是最小的,而右下方的像素是最大的。 使用透明度,但这不是必需的。 按RGB排序,但是您可以使用CMY或任何其他具有至少3个值的格式。您可以选择要排序的值。(HSV可能会提供一些不错的图像) 使用大多数计算机可以打开的任何已知图像格式。 规则: 输出必须写入磁盘或可通过管道传输到文件。 输入是作为命令行参数提供的,形式是图像的相对路径,或者从命令行通过管道输入。 这是代码高尔夫,所以最短的代码以字节为单位!

30
生成Abacaba序列
这个挑战是关于打印特定深度的算盘序列。 这是前5个序列a(N)的图表(深度为N的abacaba序列,大/小写只是用来显示模式,在程序的输出中不需要): a(0) = A a(1) = aBa a(2) = abaCaba a(3) = abacabaDabacaba a(4) = abacabadabacabaEabacabadabacaba ... a(25) = abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabajabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaia... 您可能会说,第n个算盘序列是最后一个带有第n个字母的序列,它本身又被添加到其中。(a(n) = a(n - 1) + letter(n) + a(n - 1)) 您的任务是制作一个使用整数的程序或函数,并打印该深度的abacaba序列。输出必须至少在15以上(包括15)正确。

9
真正的香肠盛宴
由于十月的第一个周末临近,让我们一起庆祝慕尼黑啤酒节! 背景 您和其他一些程序员已被德国慕尼黑的当地香肠人雇用。香肠人为慕尼黑啤酒节提供巨型Volksfest需要的所有香肠。您设法偷听老板与其他员工谈论为何您和其他人被雇用而没有任何与香肠相关的经验。您意识到自己是因为无可挑剔的编程技能而被录用的-并且您的老板显然希望您为香肠分析仪编写代码。 今年左右,香肠人决定在慕尼黑啤酒节上增加香肠的种类-但他们不知道进口了多少香肠。 挑战 您需要帮助老板弄清楚他们实际进口了某种香肠。您将需要编写一个香肠分析仪,以输出每个香肠进口的香肠的种类和数量。您的老板为此购买了一个特殊的软盘驱动器,给了一根香肠,将其输送到stdin。 输入值 上有许多香肠stdin,每个香肠用一个空格隔开。香肠的格式如下: 普林斯科夫(P) ¤ | | | | | | ¤ Salchichón(S) l | | | | | | | | l 兰贾格(L) \ / | | | | | | | | / \ 卡巴诺斯(K) . | | | | | . Cotechino摩德纳(C) …
35 code-golf 

13
威尔·罗杰斯现象
所谓的威尔·罗杰斯(Will Rogers)现象描述了一种通过在两个元素之间移动一个元素时提高两个(多)集合中的平均值来调整统计量的方法。举一个简单的例子,考虑两组 A = {1, 2, 3} B = {4, 5, 6} 它们的算术平均值分别为 2和5。如果我们移动4到A: A = {1, 2, 3, 4} B = {5, 6} 现在,平均值分别为2.5和5.5,因此两个平均值都通过简单的重组而提高了。 再举一个例子,考虑 A = {3, 4, 5, 6} --> A = {3, 5, 6} B = {2, 3, 4, 5} --> B = {2, 3, 4, …

15
楼梯写作
编写一个程序或函数,该程序或函数将以阶梯形式输出给定的字符串,并将以元音开头的单词的每个部分写在上一个部分的下一行。 例如: Input: Programming Puzzles and Code Golf Output: Pr P C G ogr uzzl and od olf amm es e ing 输入值 一个仅包含字母和空格的字符串。 可以通过STDIN或函数参数或任何等效参数传递字符串。 字母可以是小写或大写。 始终假定输入遵循这些规则,您无需检查输入是否不正确。 输出量 元音(即,每一次a,e,i,o,u或y)在遇到这个词,你必须输出到下一行(包括遇到元音)字的其余部分,在正确的水平位置。该规则是递归的,这意味着如果单词中有n个元音,它将被写在n + 1行上。 元音应该写在下一行的开头,而不是在遇到前一行的末尾。 每个单词都从第一行开始,因此应独立于其他单词设置格式。两个词用空格隔开。 如果单词以元音开头,则必须从第二行开始写出来。 测试用例 输入: Programming Puzzles and Code Golf 输出: Pr P C G ogr uzzl and od …
35 code-golf  string 

30
生成星期一号码
在这个问题上,由Gamow定义的星期一数字是正整数N,具有以下三个属性: N的十进制表示形式不包含数字0 N的十进制表示形式两次不包含任何数字 N可被以十进制表示形式出现的每个数字D整除 请注意,这些在OEIS中也称为Lynch-Bell编号。 例子: 15是一个星期一数字,因为它可以被1和整除,5并且满足其他两个条件 16不能,因为它不能被整除6。 该数字22不是,因为尽管它满足条件1和3,但没有满足条件2。 这是让您入门的前25个星期一数字的列表(共有548个): 1 2 3 4 5 6 7 8 9 12 15 24 36 48 124 126 128 132 135 135 162 168 175 184 216 248 这里的挑战是编写最短的代码来生成星期一数字的完整序列,范围从1到9867312(在该问题上证明是最大的可能)。 您的代码应不带输入,而输出应为STDOUT或同等格式,并选择分隔符。所有常用的代码高尔夫球规则均适用,并且禁止标准漏洞。 排行榜 显示代码段 var QUESTION_ID=59014,OVERRIDE_USER=42963;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var …

27
停下来,站在那里!
挑战 编写一个带有一个参数的函数:一个integer t。函数必须t继续执行几秒钟才能停止程序,这与time.sleep(t)Python和WAIT tBBC BASIC中的类似。 在一定时间后,您不得使用任何内置的等待函数或任何内置函数来执行代码,并且程序必须在t几秒钟后恢复。 为了测试您的功能,t与您自己的机器所给定的容忍度相比,容错度要高出或小于0.1秒:计算机之间的差异很小。 如果你的答案是任何人的挑战,你必须提供相关图片(screenshotted)证明你的功能才能正常工作了t=1,t=5和t=25。您还可以提供计算机的详细信息,以便人们可以尝试在自己的计算机上复制它。 您的程序应该并且将在时钟速度为1.6 GHz或更高的计算机上运行。 获奖 最短的程序获胜。 赏金 赏金将进入最短的程序,该程序将停止该程序,而无需使用循环检查已花费了多少时间。如果您正在为获得赏金而奔波,请添加脚注,说您的答案是针对赏金的。 排行榜 /* Configuration */ var QUESTION_ID = 55293; // Obtain this from the url // It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 30525; …
35 code-golf  date 

8
慢速打字员克拉伦斯
介绍 克拉伦斯(Clarence)是一位数据输入业务员,在互联网服务提供商处工作。他的工作是将所有ISP客户的IP地址手动输入数据库。他使用具有以下布局的键盘进行此操作: 123 456 789 .0 水平或垂直相邻按键的中心之间的距离恰好为1厘米。例如,3和的中心之间的距离9将是2厘米。中心之间的距离3,并5会√2cm。毕达哥拉斯定理足以计算任意两个键之间的距离。 正如您可能希望从从事ISP的人那里得到的那样,Clarence使用了非常缓慢且效率低下的键入系统。他用一根手指搜索键,然后将手指移至该键,然后按该键,然后重复输入数字中的所有数字。您可能将这种样式称为“鹰搜寻系统”,因为手指在按下键盘上方之前会搜索正确的键,然后再按下以进行击键,就像一只老鹰落下以进行杀死。 例如,这是Clarence输入数字的方式7851: 他开始用手指按7并按下钥匙。 他将手指向右移动1厘米,8然后按下键。 他将手指向上移动1厘米,5然后按下按键。 他沿对角线向上移动手指,向左移动√2cm 1并按下键。 因此,总距离克拉伦斯移动他的手指在输入7851就是1 + 1 + √2大约是3.41厘米。 您的任务是编写一个程序,该程序计算Clarence必须移动手指才能键入任意IP地址的距离。 输入说明 输入是将采用以下格式的字符串 ().().().() 其中每个()都是0- 范围内的整数999。这代表Clarence必须输入的IP地址。示例输入可能是: 219.45.143.143 我还要指出,尽管输入0.42.42.42或999.999.999.999仍然是有效的输入,尽管它们是无效的IP地址。因此,您无需在程序中包含任何IP地址验证代码。 输出说明 输出Clarence为了输入指定的IP地址必须移动手指的距离。将答案四舍五入到需要的小数点后两位,然后cm在输出中使用单位。示例输入的输出为27.38cm(1 +√8+√5+ 2 +1 +√5+ 3 +1 +√5+√13+ 3 +1 +√5)。
35 code-golf 

4
无限迷宫
背景 您是一个功能强大的向导的徒弟,您的大师当前正在开发一种咒语,以创建一个多维迷宫来诱捕敌人。他希望您对自己的蒸汽动力计算机进行编程,以分析可能的布局。对这台恶魔般的机器进行编程非常危险,因此您需要使代码尽可能短。 输入值 您的输入是一个由句点.和哈希组成的二维网格#,表示空白空间和墙壁,以换行符分隔的字符串形式给出。总是至少有一个.和一个#,并且您可以决定是否有尾随换行符。 此网格是无限迷宫的蓝图,它是通过将网格的许多副本彼此相邻对齐而制成的。迷宫分为空腔,它们是空空间的连接组件(对角相邻的空间不连接)。例如网格 ##.#### ...##.. #..#..# ####..# ##...## 导致以下迷宫(在各个方向无限连续): ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## 这个特殊的迷宫包含一个无限区域的空腔。另一方面,此蓝图导致迷宫只有有限的空腔: ##.#### ##..### ####... ..####. #..#### 输出量 如果迷宫包含无限的空腔,则您的输出应为真实值,否则为虚假的值。注意迷宫可能同时包含有限和无限的腔;在这种情况下,输出应为真实的。 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 其他测试用例 无限腔: .# #.# ... #.# #.###.#.###.# #.#...#...#.# #.#.#####.#.# ..#.#...#.#.. ###.#.#.#.### #...#.#.#...# #.###.#.###.# ##.### …

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.