编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

7
字母整数
字母整数 对于给定的一组数字,将其拼写时按字母顺序排列(即1:1、2:2、90:90、19:19)。您的代码应适用于该范围[-999999, 999999]。输出必须在数字之间有一个定界符。空格将起作用,空格和逗号也将起作用,如下例所示。输入可以是整数数组,带分隔符的数字字符串,或者您认为合适。假定所有整数都是唯一的。 在本次挑战中,数字不带连字符,空格在其他任何字符之前按字母顺序排列。假定使用单词表示负数minus。例如,four将在之前four thousand,数字-40将使用字符串进行排序minus forty。假设所有数字将仅由数字单词组成,不包含连词(例如,使用two thousand forty two代替two thousand and forty two)。 测试用例 单位数整数: 输入: 1, 2, 3, 4, 5 输出: 5, 4, 1, 3, 2 多个数字整数: 输入: -1002, 5, 435012, 4, 23, 81, 82 输出: 81, 82, 5, 4, 435012, -1002, 23 单词之间的空格,不能使用连字符,逗号或“和”: 输入: 6, 16, 60, 64, …

30
二进制二进制小数计数
挑战在于将零到10(含零)的数字输出到您的终端,窗口,画布或屏幕。每个输出的数字必须显示为4位宽的半字节,因此零必须显示为0000,依此类推。 您可以使用空格,逗号或回车符分隔输出的每个数字。最小的解决方案获胜,但是只要序列中没有重复的数字,数字就可以按照您喜欢的任何顺序显示。 如果不可能用逗号或空格输出(例如,标准输出仅限于二进制,或者您的解决方案是用于较早的计算机套件),则使用低级二进制语言的条目无需担心逗号或空格分隔符例如具有受限数字显示的KIM-1)。

4
高尔夫生命之花
这里的挑战是用您选择的语言准确地描绘出生命之花(在某些情况下是神圣的几何图形)。 设计包括如图所示的半径为1的圆和部分圆的排列,其中心排列在间距为1的三角形网格上,再加上一个围绕其的半径为3的较大圆。 您可以根据需要缩放设计,但允许数学上正确的最大误差为2%。如果使用光栅图形,则有效地将小圆圈的直径限制为至少约100个像素。 因为这是代码高尔夫球,所以最短的代码(字节)获胜。

7
为您的帖子生成Markdown模板
您的任务很简单:编写一个程序(或函数),该程序不输入任何内容并输出如下内容: ## *name*, *length* bytes *code* 其中*name*,您使用的语言名称是,*length*代码中的字节数,*code*也是程序的源代码。如果*code*包含多行,则每行之前有四个空格。 这是Python 124中一个124字节的示例实现: s = "## Python 3, 124 bytes{2} s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))" print(s.format(s,chr(34),chr(10))) 输出为: ## Python 3, 124 bytes s = "## Python 3, 124 bytes{2} s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))" print(s.format(s,chr(34),chr(10))) 在Markdown中哪个是: Python 3,124个字节 s = "## Python 3, 124 bytes{2} s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))" …
19 code-golf  quine 

7
蓝图
一个sestina是诗的格式遵循一个有趣的模式,我们可以生成。它有六个节,每个节有六行,其中第一个节中每行的最后一个单词组成每个相继节中以设置模式旋转的行结尾。(最后还有一个三行节,但我们不必担心。)看一下Elizabeth Bishop创造性地命名为Sestina的前三个节: 九月的雨落在房子上。 在失败的曙光中,老祖母 和孩子 坐在小奇迹炉子旁边,坐在厨房里, 读着历书中的笑话, 笑着说着掩饰眼泪。 她认为,历经的泪水 和房屋屋顶上刮起的大雨 都是历书所预言的, 但只有祖母才知道。 铁水壶在炉子上唱歌。 她切了一些面包,对孩子说, 现在该喝茶了;但是孩子 却看着茶壶的细小的硬泪 在疯狂的黑火炉上疯狂地跳舞,就像 雨在房子上跳舞一样。 整理时,老祖母 挂上了聪明的年历 ... 请注意,每一行的结尾是六个单词“房子”,“祖母”,“孩子”,“火炉”,“年鉴”或“眼泪”之一。不仅如此,相对于先前的节,单词的排列方式为6–1–5–2–4–3。最终看起来像螺旋形: 距离以编程方式生成完整的sestina尚有几年的时间,但是我们可以创建一个模板,以适当的顺序包含每个节的结尾词。编写一个程序或函数,给定六个行结束词,并遵循以下规则输出sestina的设计图。这是输入的预期结果house grandmother child stove almanac tears: house grandmother child stove almanac tears tears house almanac grandmother stove child child tears stove house grandmother almanac almanac child grandmother tears …

4
给定一个图,找到X
寻找X 我从数学问题中得到启发,在数学问题中要求人们“查找X”以获得给定的形状。最初,我面临的挑战是在字符串中打印字符“ x”的x和y位置。但是我认为那太简单了。因此,我考虑了它们通常所在的上下文,并决定寻找x旁边的Line的长度似乎是合适的。 给定一个字符串输入,其中包含一个图“ ascii”(线)图,以及一个单独的“ x”和可能为垃圾字符,请打印出唯一直接与“ x”相邻的行的长度。 例子 输入: | | |x | | 输出: 5 输入: |\ | \x | \ |___\ 输出: 4 输入: Diagram of a Wobbly Line: IRRELEVANTTEXT____ ____ ____/ \___/ X ;) x 输出: 3 输入: ______________ / ____________ \ |/ __________ \| ||/ ________ …

10
一个简单的数字系统
让我告诉您一个简单的数字系统。(我为此挑战而弥补) 该系统所包含的功能(),[],{},和<>。 1。 () 如果()未提供任何参数,则结果为0。 当()给定一个或多个参数时,它将求和为参数的总和。 2。 [] 如果[]未提供任何参数,则结果为-1。 当[]给定一个或多个参数时,它将得出第一个参数减去其他参数的总和。 3。 {} 如果{}未提供任何参数,则结果为1。 当{}给定一个或多个参数时,它将求值为这些参数的乘积。 4。 <> 如果<>未提供任何参数,则结果为1。 当<>给定一个或多个参数时,它将求出第一个参数整数除以其他参数的乘积。 你的任务 在这个简单的数字系统中,给定一个包含有效数字的字符串(这意味着括号是平衡的,不能除以0等),请打印其值。 测试用例 () -> 0 (()()) -> 0 ([][]) -> -2 ({}<>) -> 2 ({}[]) -> 0 [] -> -1 [[][]] -> 0 [()<>] -> -1 {()} -> 0 {([]<>)} -> …

9
平衡三连音括号
“三重括号”(我为应对这一挑战做了准备)是以下之一: (...+...) [...:...] {...|...} <...-...> 平衡的三连音括号字符串(简称BTBS)可以是空字符串,两个BTBS串联在一起,也可以是上述...三连音括号之一,每个括号用BTBS代替。 您的任务是编写一个程序或函数,以检查仅由一个字符串组成的字符串是否(+)[:]{|}<->平衡。最短的代码胜出。 例子 您的程序应为以下字符串返回true: (+)(+)(+) [[[:]:]:(+(+))]{<->|<(+)->[:]}(+) <<<<<<<<<<<<->->->->->->->->->->->-> {|(+[:<-{|(+[:<->])}>])} [[[:]:[:]]:[[:]:[:]]] {[:](+)|<->{|}}[(+)<->:{|}(+)] 您的程序应为以下字符串返回falsy: :[ <|> (+(+) [:][:](+[[:]):] {|{|{|(+{|{|{|}}}}}+)}[:]{|} {{||}} <<->-<->-<->> [(+):((+)+)+(+(+))] <<<<<->->->->->->

24
网格ASCII艺术代码高尔夫
挑战 创建满足要求的最短程序 要求 该代码必须生成一个5x5的0网格,如下所示: 00000 00000 00000 00000 00000 该代码必须接受输入(列,行,字符)。网格必须相应地更改: 开始: 00000 00000 00000 00000 00000 输入: (2,5,*) 输出: 0*000 00000 00000 00000 00000 (注意:左下角是位置1,1。) 如果行/列输入不1,2,3,4或5这可以是您选择的任何消息(只要它不是电网)的程序必须返回除电网之外的错误信息,所以0是可接受的错误输出。 该程序必须使用所有可打印的ASCII字符(使用美国键盘)。 获胜者,冠军 获胜者将是代码最短且满足所有要求的人。如果一个以上的答案有效且长度相同(最短),则第一个回答的人将成为赢家。

3
字母模式匹配
我们遇到了很多字母挑战。对于此挑战,您将传递字母挑战的输出,并且需要输出按比例缩放的模式N。 例如,如果N=5和您通过了L-phabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ BBCDEFGHIJKLMNOPQRSTUVWXYZ CCCDEFGHIJKLMNOPQRSTUVWXYZ DDDDEFGHIJKLMNOPQRSTUVWXYZ EEEEEFGHIJKLMNOPQRSTUVWXYZ FFFFFFGHIJKLMNOPQRSTUVWXYZ GGGGGGGHIJKLMNOPQRSTUVWXYZ HHHHHHHHIJKLMNOPQRSTUVWXYZ IIIIIIIIIJKLMNOPQRSTUVWXYZ JJJJJJJJJJKLMNOPQRSTUVWXYZ KKKKKKKKKKKLMNOPQRSTUVWXYZ LLLLLLLLLLLLMNOPQRSTUVWXYZ MMMMMMMMMMMMMNOPQRSTUVWXYZ NNNNNNNNNNNNNNOPQRSTUVWXYZ OOOOOOOOOOOOOOOPQRSTUVWXYZ PPPPPPPPPPPPPPPPQRSTUVWXYZ QQQQQQQQQQQQQQQQQRSTUVWXYZ RRRRRRRRRRRRRRRRRRSTUVWXYZ SSSSSSSSSSSSSSSSSSSTUVWXYZ TTTTTTTTTTTTTTTTTTTTUVWXYZ UUUUUUUUUUUUUUUUUUUUUVWXYZ VVVVVVVVVVVVVVVVVVVVVVWXYZ WWWWWWWWWWWWWWWWWWWWWWWXYZ XXXXXXXXXXXXXXXXXXXXXXXXYZ YYYYYYYYYYYYYYYYYYYYYYYYYZ ZZZZZZZZZZZZZZZZZZZZZZZZZZ 您需要输出: ABCDE BBCDE CCCDE DDDDE EEEEE 为了便于说明,我将仅使用ABCD,而不使用完整的字母。 您需要能够匹配L-phabet(上方)以及以下模式: 单行: ABCD or A B C D 单行重复N次数 ABCD or AAAA ABCD BBBB ABCD …

30
在其顶部显示一连串带奇数的小山脉!
第一行由ceil(n/2)元素组成,其中每个元素是:<space><odd-number><space> 第二行由ceil(n/2)元素组成,但每个元素都是/ \唯一的。 您可以假设n >= 0和n <= 10。 例子 输入3 1 3 / \/ \ 输入10 1 3 5 7 9 / \/ \/ \/ \/ \ Python 3中的示例,103字节: lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)])) 以字节为单位的最短代码胜出:)

13
画一条龙曲线
今天的任务:画一条龙曲线! 如果你不知道龙曲线是什么,这里是一个介绍ViHart视频(真的很酷,敬请收看!) 您的任务:绘制一条龙形曲线,重复至少9次。您不必显示迭代1到9,仅需要显示完成(至少)9次迭代后生成的最终曲线。曲线必须绘制为连接曲线上各点的直线;输出应与下面显示9次或更多次迭代(直到反射,旋转,缩放和线宽,线色和背景色的变化)的图像之一匹配。您的输出必须足够大,以使各个行和它们形成的“框”可以相互区分。如果两条线在曲线中不相交,则它们不应在输出中占据相同或相邻的像素(在它们之间至少应有一个可见的背景像素)。您可以在屏幕上显示图像,也可以将图像保存到文件中。输出必须是图形的-不能是ASCII文字。 以字节为单位的最短代码为准,但是不应在字节数中包含库的包含指令,如果图形库或其他库是在发布前编写的,则可以使用为您选择的语言编写的图形库或其他库。 请提供程序输出的图像。 如果您观看了视频,请跳过本段:对于那些决定不观看视频的人,下面显示了龙曲线的前12次迭代。就此任务而言,龙曲线是通过以下规则生成的曲线:取当前曲线的端点,创建围绕该端点旋转90度的第二条曲线,以使原始曲线的端点曲线是新曲线的起点,并将两条曲线合并为一条相交的曲线。在下面显示的图像中,每个新的迭代都是通过将前一个迭代绕端点每次顺时针旋转90度来生成的。当曲线显示在屏幕上时,哪个终点算作“终点”并不明显,但是当曲线存储为点数组时,很容易将“终点”定义为终点数组。 赞赏但不接受Ascii艺术:这是图形输出,而不是ascii艺术。

22
建立字母金字塔
今天,我们要用字母建造一座金字塔!这是前5个字母的示例字母金字塔: 在前5个字母之间写下一个空格,先升后降。 A B C D E D C B A 对上面一行的前四个字母执行相同的操作,但是要有两个额外的前导空格: A B C D C B A A B C D E D C B A 重复相同的步骤,直到最后一行只是'A' A A B A A B C B A A B C D C B A A B C D E …

27
8应该成为无穷大[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 让我们看一个典型的循环,该循环通常执行8次迭代: for (int x=0; x<8; ++x); 您必须使其无限! 对于所有支持这种循环形式的语言,这都是一场流行竞赛for。因此,得分最高的解决方案(支持率减去支持率)将获胜。 如果您的语言有其他for循环形式,但是您可以肯定,可以用它来做些很酷的事情,可以随时发布答案并将其标记为不竞争。我保留扩大可用结构和语言范围的权利,但绝不会缩小,因此不要担心放弃以前正确的解决方案。 什么是解决方案? 解决方案由两个程序组成。 第一个程序是干净程序。这是您语言中的典型程序,for循环进行8次迭代。它应该是普通程序,任何开发人员都可以编写。没有用于准备目的的任何特殊技巧。例如: int main() { for (int x=0; x<8; ++x); return 0; } 第二个程序被增强。该程序应包含干净程序中的所有代码以及一些其他代码。扩展点数量有限,有关详细信息,请参见完整规则部分。上面一个干净的增强程序可以是 inline bool operator < (const int &a, const int &b) { return true; } int main() { for (int x=0; x<8; ++x); return …

30
多少整数包含特定范围内的数字
程序应输入数字,范围的起点和范围的终点,并输出该数字在范围的起点和终点之间(包括两端)显示多少个整数。程序和功能都被允许。 输入示例 例如: //Input example 1 3,1,100 //Input example 2 3 1 100 //Input example 3 3 1 100 //Input example 4 a(3, 1, 100); 以上所有四个输入示例均有效,并且所有这些示例均表示3所讨论的数字,1范围的开头和范围100的结尾。 然后程序应输出3从1到100 包含在内的次数。3出现在整数3,13,23,30,31,32,33,...,93在总共19次。因此程序应将输出19作为输出,因为这是3从1到的范围出现了多少次100。 规则 程序和功能都被允许。 所有数字都是整数,表示不会有floats或doubles。 注意:搜寻的号码将始终在范围内0≤x≤127。在任何情况下都不会超出此0≤x≤127范围。 与第一个示例一样,情况为33,该数字3将被视为仅出现一次,而不是两次。 范围的开始和结束的值将介于-65536和之间65535。 范围起点的值永远不会超过或等于范围终点。 start < end 范围也包括在内。例如,如果输入为8 8 10,则范围为8≤x≤10,因此输出为1。 可以采用示例中显示的任何方式进行输入。您可以按照任何希望的方式将输入作为字符串或数字。 测试用例 3 1 100 19 3 3 93 …

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.