编程拼图和代码高尔夫

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

30
没有A,只有大写锁定
如果CapsLock键盘上的键没有缺口,会发生什么? “这很高兴。” 该程序的目标是一致地模拟每次A按替换为时的键盘遗漏CapsLock。源中的大写字母“ A”应产生相同的效果。当CapsLock启用时,资本是相反的。 测试用例 "The quick brown fox jumps over the lazy dog." -> "The quick brown fox jumps over the lZY DOG." "Compilation finished successfully." -> "CompilTION FINISHED SUCCESSFULLY." "What happens when the CapsLock key on your keyboard doesn't have a notch in it?" -> "WhT Hppens when …

30
这个数字是素数吗?
信不信由你,对于简单的素数测试,我们还没有针对高尔夫的代码挑战。尽管这可能不是最有趣的挑战,尤其是对于“常用”语言而言,但在许多语言中它可能并不平凡。 Rosetta代码按惯用方法的语言列出了用于素数测试的功能,一种方法专门使用Miller-Rabin测试,另一种方法使用试验部门。但是,“最惯用的”通常与“最短的”不重合。为了使“编程难题”和“代码高尔夫”成为代码高尔夫的首选站点,此挑战旨在汇编一种每种语言中最短方法的目录,类似于“ Hello,World!”。和高尔夫球给你一个伟大的机会!。 此外,实现素数测试的能力是我们对编程语言的定义的一部分,因此,这一挑战也将成为经过验证的编程语言的目录。 任务 编写一个完整的程序,给定严格的正整数n作为输入,该程序确定n是质数,并相应地打印真实或虚假值。 出于此挑战的目的,如果整数恰好具有两个严格的正除数,则它是质数。请注意,这不包括1,后者是其唯一的严格除数。 您的算法必须是确定性的(即以概率1产生正确的输出),并且从理论上讲应该适用于任意大的整数。实际上,您可以假设输入可以存储在您的数据类型中,只要程序可以处理1到255之间的整数即可。 输入项 如果您的语言能够从STDIN中读取,接受命令行参数或用户输入的任何其他替代形式,则可以读取整数作为其十进制表示形式,一元表示形式(使用您选择的字符),字节数组(大或小尾数)或单字节(如果这是您的语言所用的最大数据类型)。 如果(且仅)您的语言无法接受任何类型的用户输入,则可以在程序中对输入进行硬编码。 在这种情况下,硬编码整数必须易于交换。特别是,它可能仅出现在整个程序的单个位置。 出于评分目的,提交与输入1对应的程序。 输出量 输出必须写入STDOUT或最接近的替代方案。 如果可能,输出应仅包含一个真值或假值(或其字符串表示形式),并可选地跟一个换行符。 该规则的唯一例外是您的语言解释器不断输出的内容,例如问候语,ANSI颜色代码或缩进​​,这些输出不能被禁止。 附加规则 这并不是要找到用于最短时间测试的最短语言,而是要找到每种语言中最短的方法。因此,没有答案将被标记为已接受。 大多数语言的提交都将以适当的预先存在的编码(通常(但不一定)为UTF-8)以字节计分。 例如,Piet语言将在编码中得分,这是该语言的自然选择。 某些语言(例如Folders)很难评分。如有疑问,请在Meta上提问。 与我们通常的规则不同,即使使用的语言(或语言版本)比此挑战新,也可以使用。如果有人想通过创建一种在空程序执行素性测试的语言中滥用它的方法,那么祝贺您为一个非常无聊的答案铺平了道路。 请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。 如果您选择的语言是已经有答案的另一种(可能是更流行的)语言的琐碎变体(请考虑使用BASIC或SQL方言,Unix shell或琐碎的Brainfuck派生词,例如Headsecks或Unary),请考虑在现有答案中添加注释在其他语言中,相同或非常相似的解决方案也是最短的。 测试素性内置功能是允许的。这项挑战旨在将每种语言的最短解决方案归类,因此,如果使用您的语言的内置版本更短,那就去吧。 除非之前已否决它们,否则所有标准的代码高尔夫球规则都适用,包括http://meta.codegolf.stackexchange.com/q/1061。 附带说明一下,请不要在无聊的语言中打扰无聊(但有效)的答案;这些对于这个问题仍然很有用,因为它试图编译尽可能完整的目录。但是,主要是用作者实际上不得不努力打出代码的语言来提高答案的准确性。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言的最短解决方案列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + …

30
使您的语言无法使用
尝试用您的语言编写一些代码,并使其不再满足我们成为编程语言的条件。 在以下情况下,一种语言可以满足我们作为编程语言的标准(此挑战的简化版本): 它可以通过某种方式读取表示正整数元组的用户输入。 根据输入,它可以输出至少两个不同的可能结果。 它可以取两个正整数并将其相加(结果可能会影响输出)。 它可以取一个正整数,并确定它是否为质数(结果可能会影响输出)。 出于此挑战的目的,将忽略不是正常挑战所允许的输出方法的任何类型的输出。因此,程序是否还可以播放音乐或通过HTTP发布等等都无关紧要。 更新:您还可以选择一种或某些允许的输出方法,而忽略其他所有方法。但是您必须在以下条件中的任何地方使用相同的定义。而且,如果您的程序可以禁用不止一种输出方法,则值得进行更多投票。 例如,使其无法输出,或者禁用所有循环构造,这样它将无法进行素数测试并确保用户无法重新启用它们,例如。 您应该留出一个插入新代码的地方。默认情况下,它位于代码的末尾。如果我们考虑将源代码放在您的答案中,然后将完整的代码作为一个完整的程序(一种新语言的解释程序)运行,则该语言应不符合标准。 但插入的代码必须以这样的方式执行像满足的标准语言: 从想要编写语法突出显示的人的角度来看,插入的代码在语法上必须与通常满足条件的某些东西(例如,以下条件中的代码块)在语法上相同。因此它不能在字符串,注释等中。 插入的代码必须以符合标准的方式实际执行。因此它不能出现在未使用的函数或sizeofC语言中,您不能仅执行代码中的非功能部分,也不能将其置于无限循环之后,等等。 您不能限制以此方式生成的可能的语法正确程序的数量。如果您所使用的语言中已经存在长度限制之类的内容,则即使取消了此限制,它也不符合条件。 您不能修改或“用完”输入/输出的内容,但是可以防止它们被访问。 这些条件通常仅适用于没有显式I / O的语言: 如果代码块通常无法直接/显式地使用您使用的语言来获取用户输入,则您的代码应将用户输入(包含任意长度的信息)重定向到插入的代码。 如果代码块通常无法直接/显式地使用您使用的语言输出内容,则您的代码应打印出插入代码的返回值。 如果您打印返回的值,并且使用您使用的语言键入了该值,则返回的类型应能够具有2种实际可能的值。例如,您不能使用类型struct {}或struct {private:int x;}C ++。 这是人气竞赛。票数最高的有效答案(因此,没有人发现错误或所有错误均已解决)获胜。 澄清说明 您不应该修改文本形式的代码,但是可以在解释或编译代码之前更改语法。 您可以在代码运行时执行其他操作。但是,它不满足条件的原因应该在插入的代码本身内。它可能由于另一个线程的干扰而出错,而不仅仅是被另一个线程杀死。 所有规范基本上都意味着,如果所有内置功能都没有更改但实际上没有更改,则在语法上应该符合标准。如果您发现任何非语法的变通办法,例如将参数正确地传递到代码块,但又使其无法以某种方式使用,那是很好的。 同样,插入的代码必须实际执行。无限循环或崩溃后的代码被视为“未实际执行”,因此无效。这些答案可能很有趣,但是此站点上已经存在其他无限循环或崩溃问题,您可能会找到一个更合适的答案。如果不是,请考虑提出一个新问题。这些问题的示例是: 最短的无限循环不产生任何输出 为什么不结束? 循环而不“循环” 挑战:写一段自己退出的代码 可笑的运行时错误 崩溃您最喜欢的编译器 排行榜 var QUESTION_ID=61115/*,OVERRIDE_USER=8478*/;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()*/(more_answers?getAnswers():process())}})}/*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 e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var …

30
编程语言测验
祝贺丹尼斯赢得了警察和强盗的挑战!卡尔文的爱好已经兑现了他的诺言,并为丹尼斯赢得了强盗的挑战而写了这个挑战。 注意:自2015年1月1日世界标准时间以来,此挑战已关闭,以供进一步的警察答复。发布的任何新答案将不符合获胜条件,如果被破解,将不会计入强盗的分数。但是,您可能仍会发布新答案,以供其他用户使用,因此仍然有一些谜题可供将来的访问者使用。这些新答案包含在排行榜的“弱势警察”部分中,并且它们的非竞争状态被单独标记。 欢迎来到《 Hello World测验》的警察与盗贼版!(如果您从未参加过测验,请随意尝试一分钟或30分钟。不过,您不必参加此挑战。) 警察的挑战 选择一种编程语言。在发布此挑战时,有效语言必须包含英文Wikipedia文章,esolangs文章或Rosetta Code文章(请注意,链接列表不一定完整,因为它们是手动策划的)。它们还必须满足我们通常的编程语言标准,因此HQ9 +之类的产品就不存在了。最后,必须有免费的语言解释器或编译器(如啤酒)(发布此挑战时)。 编写一个Hello World程序。就是说,用所选的语言编写一个完整的程序,该程序将进行打印Hello, World!(完全一样,即此精确的字节流),并可选地在STDOUT或最接近的替代字词后加一个换行符。 您不得使用REPL环境,现有样板代码或非标准的编译器/解释器标志。该程序必须采用一个或多个源文件的形式(以排除诸如Folders之类的古怪语言),并且必须完全适合您的答案(因此其长度不能超过30,000个字符)-这对于任何认真的意见。 如果您的代码包含可打印ASCII范围之外的字节,请添加一个pastebin或十六进制转储,以确保您的代码可实际测试。 该程序必须在典型的台式PC上在1分钟内终止。 而已。要注意的是,您希望混淆代码,以至于不清楚选择哪种语言。还要注意,您不希望您的代码意外地成为任何其他语言的有效Hello World程序,尽管我希望对于经过充分混淆的程序来说这不太可能。 一旦发布,您在任何情况下都不得编辑提交的源代码(因为这可能使强盗试图破解答案的积极尝试无效)。因此,在发布之前,请确保尽可能(或不敢)打高尔夫球。如果您知道答案发布后仍然无法使用,只需删除答案并发布固定版本即可。 如果在7天内没有人发现您的代码有效的语言,则可以显示所选的语言(最好是对混淆的代码进行解释),这样可以使答案安全。请注意,在您揭示语言之前,您的提交仍然可以被破解。 最短安全提交(以字节为单位)获胜。 格式化 (如果您现在不打算作为警察参加,请跳过本节,阅读《强盗的挑战》。) 在这篇文章的底部,您将找到一个Stack Snippet,它可以生成排行榜以及可以破解的提交列表。为了使代码片段正常工作,在答案中包含特定的标头非常重要: 新答案应包含标题,例如 # ???, [N] bytes [N]代码的大小在哪里,以字节为单位,???应按字面显示。 如果答案在7天内未破解,并且您想通过显示语言来确保答案安全,则只需替换即可???,例如 # Ruby, [N] bytes 可以随意将语言名称链接到相关网站,例如esolangs页面或GitHub存储库。该链接将显示在页首横幅中。 如果其他用户成功破解了您的提交(请参见下文),请同时添加语言以及类似的通知 # Ruby, [N] bytes, cracked by [user] [user]提交第一个有效破解的用户的名称在哪里。如果破解中使用的语言与您想要的语言不同,我建议您使用强盗的猜测并在答案中提及您打算将其用作其他语言。随意使用户名成为其个人资料页面的链接。 强盗的挑战 找到一个脆弱的答案。这是一个答案,尚未破解,也不安全。 通过弄清楚它的语言来破解它。也就是说,找到给定程序是有效的Hello World程序的任何语言(以上述“警察的挑战”中概述的规则为准)。这是否是警察所要使用的语言并不重要。 如果找到了这种语言,请在注释中加上该语言的名称。如果可能,您应该包括一个在线解释器的链接,以表明该代码实际上可以按要求以该语言运行。 …

30
拖钓巨魔[关闭]
巨魔捕获了您,并迫使您编写恶意软件(定义为破坏运行它的计算机的程序)。巨魔可以阅读和理解代码,但是不善于发现错误。 您的目标是编写一个程序,该程序: 看起来像恶意软件;即,一个刚开始阅读代码的程序员将被认为该代码会对运行它的计算机造成损害。 实际上完全没有损坏。 注意:巨魔仅读取代码,而不注释。因此,代码本身应该清晰且令人信服。 示例(重击): rm - rf /home 此示例看起来像是rm -rf /home从系统中删除了所有主文件夹,但是实际上,由于rf之前的空间,这将无法正常工作,并且只会导致无害的错误消息。 这是可以接受的解决方案,但不是很好,因为该错误很容易检测到。 另一方面,复杂且不可读的程序也不是很好的解决方案,因为它看起来不会像恶意软件。 一个好的解决方案应该足够易读,以使读者相信它是恶意软件,但其中包含一个难以检测并使其无害的错误。 这是一次人气竞赛,因此投票最多的代码将获胜。

30
我不是您要查找的语言!
当您找到一段代码并且不知道该语言是用什么语言编写时,这会很烦吗?这个挑战试图在某种程度上解决这个问题。 挑战 您将必须编写一个程序,当以两种不同的语言运行时,该程序将输出字符串: This program wasn't written in <language program compiled/interpreted in>, it was built for <other language the program can be run in>! 在输出中,语言名称应使用大写字母。例如:CJam,C ++ 这两个程序都不应该接受用户的任何输入。 当以两种语言运行时,输出应为stdout或等效输出。 在这两个程序中,stderr均不应有输出。 您可以使用两种语言的注释。 相同语言的两种不同版本计为不同语言。 如果这样做,程序应输出主要版本号,并且如果在两个不同的次要版本上运行,则还应报告次要版本。 您不应该使用预构建的版本函数(这包括在运行时已经评估过的变量)。 输出示例: Perl和Ruby: Perl: This program wasn't written in Perl, it was built for Ruby! 红宝石: This program …

30
一个比其短(以字符为单位)的程序可以打印的最小正10基整数是多少?
我认为上述问题很明确,但以防万一: 编写一个完整的程序(不仅仅是一个函数),该程序将打印一个以10为基数的正整数,并可以选择后跟一个换行符。 合格程序将是输出比程序源代码长(以字节为单位)的程序,以字节为单位(假定程序源代码为ASCII或UTF-8编码)。 即,代码必须短于所得数字中的位数。 在任何情况下都不允许前导零。计算前导零使问题变得微不足道;忽略前导零将使这个问题变得不必要。 获胜的程序将是合格程序,该程序将打印出幅度最小的整数。 排行榜摘要 显示代码段 var QUESTION_ID = 67921; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function …

27
您想编码一个雪人吗?
这是一个简单的ASCII艺术雪人: _===_ (.,.) ( : ) ( : ) 让他结识一些朋友。这将是我们ASCII艺术雪人的一般模式: HHHHH HHHHH X(LNR)Y X(TTT)Y (BBB) 所有雪人的前导空格和括号始终相同。不同的字母代表可以单独更改的图案部分。每个部分有四个准确的预设,可以填充哪些ASCII字符。通过为所有八个部分混合并匹配这些预设,我们可以制作各种雪人。 所有预设 (请注意,否则将在空白行上放置空格,以使截面形状始终正确。) H代表帽子 草帽 _===_ 墨西哥帽 ___ ..... 非斯 _ /_\ 俄罗斯帽子 ___ (_*_) N代表鼻子/嘴巴 正常 , 点 . 线 _ 没有 L代表左眼 点 . 大点 o 最大点 O 关闭 - R代表右眼 (与左眼相同。) X是左臂 …

30
数学是事实。编程不是
在数学中,感叹号!通常表示阶乘,并且在论点之后出现。 在编程中,感叹号!通常表示取反,它位于参数之前。 对于这一挑战,我们仅将这些运算应用于零和一。 Factorial 0! = 1 1! = 1 Negation !0 = 1 !1 = 0 取一个零或多个字符串!,然后是0或1,然后是零个或多个字符串!(/!*[01]!*/)。 例如,输入可以是!!!0!!!!或!!!1或!0!!或0!或1。 在!的之前的0或者1是否定和!年代后的阶乘。 阶乘的优先级比否定的优先级高,因此总是优先应用阶乘。 例如,!!!0!!!!确实意味着!!!(0!!!!),或者更好!(!(!((((0!)!)!)!)))。 输出所有阶乘和否定的结果应用。输出将始终为0或1。 测试用例 0 -> 0 1 -> 1 0! -> 1 1! -> 1 !0 -> 1 !1 -> 0 !0! -> 0 !1! -> 0 0!! -> …

8
绘制图像作为Voronoi地图
归功于Calvin的兴趣爱好,将我的挑战想法推向正确的方向。 考虑平面中的一组点,我们将其称为site,并将颜色与每个站点关联。现在,您可以使用最接近的站点的颜色为每个点着色,从而绘制整个平面。这称为Voronoi图(或Voronoi图)。原则上,可以为任何距离度量定义Voronoi映射,但是我们将仅使用通常的欧几里德距离r = √(x² + y²)。(注意:您不一定非要知道如何计算和渲染其中之一才能在此挑战中竞争。) 这是一个包含100个站点的示例: 如果查看任何像元,则该像元内的所有点都比相应的地点更近。 您的任务是使用这样的Voronoi贴图来近似给定图像。你给出任何方便的光栅图形格式的图像,以及一个整数ñ。然后,您应该生成最多N个站点,并为每个站点生成一个颜色,以使基于这些站点的Voronoi地图尽可能接近输入图像。 您可以使用此挑战底部的堆栈片段来从输出中渲染Voronoi贴图,也可以根据需要自己渲染。 您可以使用内置函数或第三方函数从一组站点计算Voronoi地图(如果需要)。 这是一次人气竞赛,因此以最多净票数赢得答案。鼓励选民通过以下方式判断答案 原始图像及其颜色的近似程度。 该算法在不同种类的图像上的效果如何。 该算法对小N的效果如何。 该算法是否自适应地对需要更多细节的图像区域中的点进行聚类。 测试影像 这是一些测试您的算法的图像(一些我们通常的怀疑者,一些新的怀疑者)。单击图片查看大图。 第一排的海滩是由奥利维亚·贝尔(Olivia Bell)绘制的,并在她的允许下包括在内。 如果您想要其他挑战,请尝试白色背景的Yoshi并使其腹部正确。 您可以在此imgur画廊中找到所有这些测试图像,您可以在其中将它们下载为zip文件。专辑还包含一个随机的Voronoi图作为另一项测试。作为参考,以下是生成它的数据。 请提供用于各种不同图像和N的示例图,例如100、300、1000、3000(以及适用于某些相应单元格规范的粘贴框)。您可以根据需要在单元格之间使用或忽略黑色边缘(在某些图像上看起来比在其他图像上看起来更好)。但是,不要包括这些网站(当然,在一个单独的示例中,除非您想说明您的网站展示位置如何工作)。 如果要显示大量结果,可以在imgur.com上创建一个图库,以使答案的大小合理。另外,也可以像在参考答案中所做的那样,将缩略图放在您的帖子中,并使其链接到较大的图像。您可以通过s在imgur.com链接(例如I3XrT.png-> I3XrTs.png)后附加文件名来获得小缩略图。另外,如果发现不错的东西,请随时使用其他测试图像。 渲染器 将输出粘贴到以下堆栈片段中以呈现结果。确切的列表格式无关紧要,只要每个单元格由5个浮点数按顺序指定x y r g b,其中x和y是单元格站点的坐标,并且r g b是该范围内的红色,绿色和蓝色通道0 ≤ r, g, b ≤ 1。 该代码段提供了一些选项,用于指定单元格边缘的线宽,以及是否应显示单元格位置(后者主要用于调试目的)。但是请注意,仅当单元格规格更改时才重新渲染输出-因此,如果您修改其他一些选项,请为单元格或其他内容添加一个空格。 显示代码段 function draw() { document.getElementById("output").innerHTML = svg } function drawMap() …

30
用您喜欢的语言编写另一种语言的程序
确定的Real Programmer可以用任何语言编写Fortran程序。 来自真正的程序员不要使用Pascal 您的任务是用您选择的编程语言编写程序,但只允许使用另一种语言。也就是说,丢弃所有一种语言的编码约定,并用另一种语言的编码约定替换它们。越多越好。使您的程序看起来像是用另一种语言编写的。 例如,讨厌Java的Python爱好者可以使用Java编写以下Python程序: void my_function() { int i = 9 ; while(i>0) { System.out.println("Hello!") ; i = i - 1 ;}} Pascal发烧友被迫使用C可以这样写: #define begin { #define end } #define then #define writeln(str) puts(str) if (i == 10) then begin writeln("I hate C"); end 您必须编写完整的程序。该程序不必做任何有用的事情。 祝好运。这是一次人气竞赛,因此获胜最多的代码将获胜!

30
多年来的编程语言
在这一挑战中,用户将轮流使用允许逐渐变老的编程语言来完成三个相当简单的编码任务。 第一个答案必须使用2015年制作的编程语言。一旦至少有一种2015年语言的答案,答案就可以使用2014年制作的编程语言。类似地,不允许使用2013年语言的答案。直到至少有一个2014年答案。 通常,直到提交了使用Y + 1年的语言的答案后,才允许使用Y年的编程语言。唯一的例外是Y = 2015。 寻找你的语言年 要回答这个问题,您必须知道您的编程语言的“制造年份”。当然,这是一个主观术语;一些语言是在多年的发展过程中开发的,并且每年仍在升级许多语言。让“制造”该语言的年份成为该语言的实现在公众中出现的第一年。 例如,Python是1991年制造的,尽管它的开发自1989年以来一直在进行,而1.0版直到1994年才发布。 如果今年仍然是主观的,请使用常识选择最合适的年份。不要因对年份的选择而陷入一点分歧。请提供指向您的语言的来源的链接。 编程语言的不同版本或标准(例如Python 1、2、3)被视为具有相同初始年份的相同语言。 因此,除非您的语言年份是2015年,否则您只能在提交了其语言年份为您的前一年的答案后才能提交答案。 如果已经存在与您年份相同的有效答案,则可以回答。您的语言是在今年早些时候还是晚些时候开发都没有关系。 任务 您必须完成任务1到3。任务0是可选的。 这些任务或多或少地被选择为与编程的三个重要方面相对应:提供输出(任务1),循环(任务2)和递归(任务3)。 任务0-语言历史记录(可选) 至少写一个段落来说明您所选择的编程语言的历史:谁开发了它,为什么,怎么做等等。如果您本人是在语言诞生时就在身边的,甚至可能在语言的发展中发挥了作用,则尤其值得鼓励。随意将有关该语言对您或您的工作或类似事情的影响的个人轶事联系起来。 如果您太年轻而又不做大量研究就不了解您的语言历史,请考虑给老用户留下笔记,说他们可以编辑您的帖子并添加一些第一手的历史记录。 任务1-“你好,世界!” 变体 编写一个打印程序 [language name] was made in [year made]! 到您的语言的标准输出区域(最新语言的标准输出)。 例如,如果语言是Python,则输出为: Python was made in 1991! 任务2-ASCII Art N 编写一个程序,让用户在奇正整数输入(你可以假设输入始终有效),并打印出来使用字符的ASCII艺术字母N制成N。 如果输入为1,则输出为: N 如果输入为3,则输出为: N N NNN N N …

30
揭穿Stroustrup揭穿神话“ C ++仅适用于大型,复杂的程序”
Stroustrup最近发布了一系列文章,揭露了有关C ++的流行神话。第五个神话是:“ C ++仅适用于大型,复杂的程序”。为了揭穿它,他编写了一个简单的C ++程序,可下载一个网页并从中提取链接。这里是: #include <string> #include <set> #include <iostream> #include <sstream> #include <regex> #include <boost/asio.hpp> using namespace std; set<string> get_strings(istream& is, regex pat) { set<string> res; smatch m; for (string s; getline(is, s);) // read a line if (regex_search(s, m, pat)) res.insert(m[0]); // save match in set return …

30
捣蛋多语
既然万圣节快到了,我想我可能会开始一个有趣的小代码高尔夫挑战赛! 挑战非常简单。您必须编写一个输出trick或的程序treat。 “转弯?” 你可能会问。好吧,让我解释一下: 您的程序必须执行以下操作: 可以使用两种不同的语言进行编译/运行。相同语言的不同版本不计算在内。 当您使用一种语言运行该程序时,应该输出trick,而另一种语言应该输出treat。大小写无关紧要,并且允许在字符串中填充空格字符(请参见示例)。 这是代码高尔夫球,因此以字节数最少的解决方案为准。 一些解释: 有效的输出(仅针对不用于运行两种语言的代码的单词。还添加引号来表示输出的开始或结束。请勿在解决方案中包括它们!): "trick" "Treat" " TReAt" " tRICk " 无效的输出: "tri ck" "tr eat" "trck" 我很想知道您能想到什么!高尔夫快乐! 我想指出,这是我的第一个挑战,因此,如果您对此问题有任何建议,请以评论形式保留。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 …

30
不要谷歌“谷歌”
我们都知道,如果您用谷歌搜索“ google”一词,它将破坏互联网。 您的任务是创建一个接受一个字符串并以最少的Unicode字符返回其长度的函数。 但是,如果给定的字符串为google(小写),则将导致错误。 例如,g('bing')将返回4但g('google')将导致错误。 请提供用法示例,并尽可能给出错误信息。
158 code-golf  string 

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.