编程拼图和代码高尔夫

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

30
如何在不使用*和+运算符的情况下编写用于乘法的C程序?
是否可以编写一个将两个数字相乘而不使用乘法和加法运算符的C程序? 我在Stack Overflow上找到了这个。请帮助这个可怜的程序员解决他的问题。请不要给出答案一样c = a/(1/((float)b)),这是完全一样的c = a*b。(并且已经给出了答案。) 2014年1月19日投票最多的答案将获胜。 注意:这是一个代码询问问题。请不要认真对待问题和/或答案。有关更多信息,请参见代码拖曳。

17
帮助特朗普筑墙!
特朗普需要建造隔离墙,而您将要做!为了最有效地构建他的墙,我创建了一个简单的可重复模式供您使用: __ __ | |_| | ___| |___ - - - - - - - - - - - - - - - - - - - ——————————————— 特朗普会告诉您他需要多少个墙段,然后您将它们构建为看起来像这样。 这是模式: __ __ <-- 4-2-3-2-4 ' _ _ ' | |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | ' ___| |___ …

30
唱小鲨鱼
《小鲨鱼》是一首有关鲨鱼家庭的儿童歌曲。早已作为篝火歌流行,但自2000年代中期以来已被社交媒体,在线视频和广播广泛传播。- 维基百科 编写不带输入的程序,并将以下文本写入标准输出或任意文件: Baby Shark doo doo doo doo doo doo Baby Shark doo doo doo doo doo doo Baby Shark doo doo doo doo doo doo Baby Shark! Daddy Shark doo doo doo doo doo doo Daddy Shark doo doo doo doo doo doo Daddy Shark doo doo doo …

23
哟,男孩,总和
每一个正整数,可表示为最多三个回文正整数中的任何基础的总和b ≥5。 Cilleruelo等,2017 如果正整数在给定的基数中为回文,则该正整数在该基数中的表示(不带前导零)将向后读取相同的值。在下面,仅基b = 10将被考虑。 作为回文数之和的分解不是唯一的。例如,5可以直接表示为5或2, 3。类似地,132可以分解为44, 44, 44或121, 11。 挑战 给定一个正整数,将其和分解为三个或三个以下以正整数为基础的正整数。 附加规则 所使用的算法应适用于任意大的输入。但是,如果程序受内存,时间或数据类型的限制,则可以接受。 输入和输出可以通过任何合理的方式进行。输入和输出格式像往常一样灵活。 您可以选择为每个输入生成一个或多个有效分解,只要输出格式是明确的即可。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 例子 由于输入可以具有许多分解,因此这些只是示例而不是测试用例。每种分解显示在不同的行上。 Input -> Output 5 -> 5 2, 3 15 -> 1, 3, 11 9, 6 21 -> 11, 9, 1 7, 7, 7 42 -> 22, 11, 9 2, …

30
魔术聚会:朋友还是敌人?
在纸牌游戏《魔术:聚会》中,有五种不同的颜色,代表纸牌的松散隶属关系,白色(W),蓝色(U),黑色(B),红色(R)和绿色(G)。这些通常以五边形排列如下: W G U R B 在MtG的知识以及许多卡片机制中,此五边形中的相邻颜色通常被视为盟友,而不相邻(相反)的颜色则被视为敌人。 在此挑战中,将为您提供两种颜色,并应确定它们之间的关系。 挑战 您会从集合中获得两个不同的字符BGRUW。您可以将它们视为两个字符的字符串,在字符之间带有定界符的字符串,两个单独的字符值,两个单例字符串,两个代表其代码点的整数,或包含两个字符/字符串/整数的列表或集合类型。 您的输出应该是您选择的两个不同且一致的值之一,一个表示两种颜色是同盟,另一种表示它们是敌人。这两个值之一可能根本没有输出。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 只有20种可能的输入,因此我将全部列出。 好友: WU UB BR RG GW UW BU RB GR WG 敌人: WB UR BG RW GU BW RU GB WR UG

30
输出标志
给定数字N,输出N的符号: 如果N为正,则输出1 如果N为负,则输出-1 如果N为0,则输出0 N将是您选择的语言在可表示的整数范围内的整数。

30
三三三!
编写一个产生输出的程序,使得: 至少出现三个不同的字符。 每个字符的出现次数是3的倍数。 例如,A TEA AT TEE是一个有效的输出由于各4个不同的字符,A,E,T和(space),发生3次。 当然,关于数字3的挑战需要有第三个要求。所以: 该程序本身还必须遵循前两个要求。(这意味着您的程序将至少有9个字节长。) 您必须编写完整的程序,而不是函数。确保在答案中显示程序的输出。 此外,为使事情有趣,我们强烈建议您: 如果可以帮助,不要使用评论来满足要求3 产生的输出不仅仅是重复3次的字符串 使输出与程序本身有所不同(对于可以自动输出其自己程序内容的语言,您可以对此社区Wiki做出贡献)。 这是代码高尔夫球。以字节为单位的最短代码获胜。

24
编写一个自行下载的程序
编写一个连接到该站点的程序,下载其发布的答案,提取其自己的源代码并打印出来。输出必须与源代码相同。最短的代码(以字节为单位)获胜。 规则: 不允许使用URL缩短器。 答案必须具有常规格式-带有语言名称和大小,可选描述,代码块,可选描述和解释的标题。不允许使用非自然的分隔符。 输出必须源自站点上发布的实际代码块。 功能必须不取决于答案列表中的位置。即使有多个页面,它也应该起作用,而答案不在第一页上。 新增内容:有关应在浏览器中运行的答案的特殊说明:可以要求在codegolf域上运行它们(遵守同源策略)是可以的,但是该域和路径应包含在解决方案中,以便公平一点。

8
绘制随机的黑白森林
您的任务是编写将绘制800x600黑白图像(类似于森林)的程序。 像这样(抖动的照片): 规则 您不可以使用任何现有图像-您应该纯粹通过算法生成图像 仅使用2种颜色-黑白(无灰度) 每次程序运行时映像应该是新的-每次随机 一棵树不是森林(至少要说五棵树) 禁止绘制树木/森林的特殊图书馆 以多数选票获胜

7
容错Hello World(又名采访)
面试结束时,邪恶面试官告诉您:“我们让所有申请人进行简短的编码测试,以查看他们是否真的知道自己在说什么。不用担心;这很容易。如果您创建了一个工作程序,我会立即为您提供工作。” 他示意您坐在附近的计算机旁。“您要做的就是创建一个可正常运行的Hello World程序。但是,”-他大笑着说-“有一个陷阱。不幸的是,我们在这台计算机上拥有的唯一编译器存在一个小错误。它会从该计算机中随机删除一个字符。源代码文件,然后再编译。好的,五分钟后见!” 然后他走出房间,开心地吹口哨。 您能保证得到这份工作吗? 任务 编写一个程序,Hello, world!即使从文件中的任何位置删除了单个字符,也可以打印到标准输出。或者尽可能接近这个。 规则 没有多余的输出 - Hello, world!必须是打印到标准输出的唯一实质性内容。如果其他字符是由您选择的语言自然产生的,则可以包含其他字符,例如尾随换行符,甚至类似的字符[1] "Hello, world!"(例如,如果您使用的是R),但每次都必须打印完全相同的字符。 它不能打印Hello, world!Hello, world!或Hello world!" && x==1在某些时候,例如。但是,允许警告。 测试为了测试以确定您的分数,您必须测试程序的每个可能排列:在删除每个字符的情况下对其进行测试,并查看其是否产生正确的输出。为此,我在下面提供了一个简单的Perl程序,该程序应适用于多种语言。如果它对您不起作用,请创建一个测试程序并将其包含在您的答案中。 计分您的分数是程序失败的次数。换句话说,文件中删除字符的各个位置数量使程序无法运行。最低分获胜。如果出现平局,则以最短的代码为准。 诸如"Hello, world!"多种语言(15种分数)之类的简单解决方案是可以接受的,但它们不会赢。我至少找到了一个Perl解决方案,其得分为4,我将最终发布它。 更新: 官方优胜者将使用图灵完备的编程语言,并且不会使用任何预定义的打印机制Hello, world!。所使用的任何外部资源(语言的标准库除外)都被视为程序的一部分,并且会被相同的1个字符删除。 这些要求贴在桌子上的便签纸上。抱歉,如果您最初没有看到它们。 更新2:是的,您的程序必须实际完成上述任务才能获得分数!意味着它应该Hello, world!至少成功打印一次。这应该是显而易见的。命令行开关和其他添加功能的设置也算作程序的一部分,并且必须删除单个字符。该程序必须在没有任何用户输入的情况下完成其任务。编译失败包括在您的失败计数中。 祝您编程愉快,并祝您工作顺利。但是,如果您失败了,您可能还是不想为那个邪恶的老板工作。 Perl测试脚本: use warnings; use strict; my $program = 'test.pl'; my $temp_file = 'corrupt.pl'; my $command = "perl -X …

30
最奇怪的是混淆了“ Hello World!”。
任务: 创建一个混淆的程序进行打印Hello World!(完全一样)。您的程序中可能没有任何字符串。 规则: 您可以使用任何喜欢的编程语言。 让它为模糊地 这是一场人气竞赛,因此投票最多的人将获胜。 注意: 这不是这个问题的重复。那是代码高尔夫,它有不同的规则。

30
柯拉兹猜想(OEIS A006577)
这是Collat​​z猜想(OEIS A006577): 以整数n > 1 开头。 重复以下步骤: 如果n为偶数,则将其除以2。 如果n为奇数,则将其乘以3并加1。 事实证明,对于所有最多5 * 2 60或大约5764000000000000000的正整数,n最终将变为1。 您的任务是找出达到1所需的迭代次数(减半或三倍加一)。 相关的xkcd :) 规则: 最短的代码胜出。 如果输入的数字<2,或者非整数或非数字,则输出无关紧要。 测试用例 2 -> 1 16 -> 4 5 -> 5 7 -> 16
66 code-golf  math 

21
将您的英语源代码翻译成外语[关闭]
我注意到,基于英语的计算机语言数量不成比例。我建议通过将现有的计算机语言翻译成外语来解决此问题! 选择一种使用英语关键字/功能的计算机语言 选择英语以外的任何自然*语言 编写一个程序,将其自身的源代码或使用相同关键字/函数子集编写的任何其他程序翻译成其他语言 发布源代码和输出(翻译后的代码) 用以下内容开始您的帖子: 法语BASIC 要么 BASIC,法语-FONDAMENTAL 如果不想,您不必翻译语言名称,这只是为了好玩! 您不必翻译所选语言中的所有关键字/功能,只需翻译您在源代码中实际使用的关键字/功能即可。例如,PHP有成千上万,因此您绝对不需要全部翻译!另外,如果您有任何意见,也请尽力翻译!程序完成后,除非适用于外语的英语单词不应该被识别。字符串中的单词也应该翻译(这意味着翻译后的程序即使可以运行,也不再能在英语源代码上运行!)。希望您的程序对说另一种语言的程序员有某种意义! 例如,if () {} elseif () {} else {}可能会变成si () {} sinonsi () {} sinon {}法文!如果您将Perl的翻译elsif成法文,也许您会n像e用英语将第二个单词放在第二个单词一样丢弃第二个单词sinosi。在法国其他更可能是他者,但替代兴农(或者,否则)感觉更好的给我! 有创造力!尝试捕捉计算机和自然语言的感觉!没有英语标记的语言如Brainfuck,CJam等将无法使用。像BASIC或COBOL之类的语言更合适。除非您的语言不支持可以是英语单词的变量名,否则请使用有意义的变量名并进行翻译。 您可以发布多个答案,每个答案对应一种计算机/自然语言。您不得使用库或外部工具进行翻译!您的代码应自行翻译,而不要调用其他可以翻译的内容!这不是Code Golf!如果您的程序接受任何输入,则只能是其自己的源代码,如果它是从光盘中读取的,则只能是源文件,等等。 *就此挑战而言,我将世界语,洛伊班语,Volapük,Interlingua等视为自然语言。您可能没有为这项挑战发明自己的语言! 我添加了一条规则来防止显眼的提篮。您可以选择关键字/功能的任何子集(甚至全部)进行翻译。您的程序必须至少能够翻译自己,即,如果您的原始来源中包含单词,print那么print(42)在输入代码中添加任何位置(而不是您的程序本身)仍将产生正确的结果。 例如: function translate() { ... } print(translate()); 可能成为 fonction traduire() { ... } imprimer(traduire()); 如果输入更改为 print(42); function translate() { …

30
是独眼巨人号码吗?“没人知道!
任务: 给定一个整数输入,找出它是否是一个独眼巨人数。 您可能会问,什么是独眼巨人号码?嗯,这是一个数字,其二进制表示0的中间只有一个! 测试用例: Input | Output | Binary | Explanation -------------------------------------- 0 | truthy | 0 | only one zero at "center" 1 | falsy | 1 | contains no zeroes 5 | truthy | 101 | only one zero at center 9 | falsy | 1001 | contains …

14
画the(生物危害标志)
在明显不同的背景上以任意颜色绘制生物危害符号。具体比例已发布在1974年6月27日的美国政府联邦公报上。 细节 作为输出,都允许写入文件(允许光栅和矢量格式)或在屏幕上显示。 您可以只绘制边框或填充的形状。 如果使用光栅图像,则应将一个(或两个)参数作为输入,以调整输出的分辨率(例如,宽度/高度)。 背景必须至少具有符号边框的大小,但可以更大。 输出unicode符号☣是不够的。 下图给出了使用距离的确切比例(该图最初来自此处): 我还尝试制作一个具有相同度量的附加图,希望它更容易阅读: (灵感来自99%invisible的帖子)

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.