Questions tagged «code-golf»

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

7
解释> <>(鱼)
虽然&gt; &lt;&gt;不是流行的语言,但它可能对打高尔夫球很有用,并且已在本网站上使用。它受到Befunge的启发,在指令上有一些相似之处。 所需命令: &gt; &lt; ^ v 更改指令指针的方向(右,左,上,下) / \ | _ # 。指针将根据其已有的方向改变方向。 x 随机方向。 + - * , % 加法,减法,乘法,除法和模。将A和B弹出堆栈,然后将B运算符A推入。除以0会引发错误。 0-9 a-f 将相应的值压入堆栈。a = 10,...,f = 15 = 从堆栈中弹出A和B,如果B = A,则按1,否则按0。 ) 比...更棒。将A和B弹出堆栈,如果B &lt;A ( 小于,则按1 。将A和B弹出堆栈,如果B&gt; A ' " 启用字符串解析,则按1 。字符串解析将找到的每个字符推入堆栈,直到找到结束引号为止。 ! 跳过以下说明。 ? 如果堆栈顶部为零或堆栈为空,则跳过以下指令。(注意:这不会从堆栈中弹出任何东西!) : 复制堆栈中的最高值。 …

28
找出数字是否快乐?
通过以下过程定义一个满意的数字。从任何正整数开始,用数字的平方和代替数字,然后重复此过程,直到数字等于1(它将停留在该位置),或者它在不包含1的循环中无休止地循环。对于此过程,以1结尾的是快乐数字,而没有以1结尾的过程是不快乐数字(或悲伤数字)。给数字打印是快乐还是不快乐。 Sample Inputs 7 4 13 Sample Outputs Happy Unhappy Happy 注意:对于任何小于1,000,000,000的数字,您的程序所花费的时间不应超过10秒。

30
剪刀石头布
实施经典的剪刀石头布。 条件: 用户将输入“ r”,“ p”或“ s” 程序将输出“ r”,“ p”或“ s”以及结果 程序选择(“ r”,“ p”或“ s”)必须是伪随机的(我在看你霍华德) 结果可以用任何可打印的字符表示,对于用户输入的内容(用户赢,输或平局),应始终存在三个可能的结果。 如果用户不输入任何内容,或者与“ r”,“ p”或“ s”不同的内容不重要,将会发生什么。 你需要: 提供打高尔夫球的代码。 取消编码 您如何调用程序 样品运行 如果平局显示投票最多的答案,我将选择字符较少的答案。 打高尔夫好运,可能永远都对你有利。 我将用Java发布自己的答案。 对于那些住在山下的人: r =岩石 p =纸 s =剪刀 石头:胜于剪刀,不胜枚于纸,不胜枚举。 纸:胜于摇滚,用剪刀输,用纸扎。 剪刀:胜于纸张,不胜枚举,不胜枚举。 当前职位: 联合国:用户名 PL:编程语言 CC:字符数 紫外线:得票最多 ╔══════════════════╦════════════╦══════╦════╗ ║ UN ║ PL ║ CC ║ …
21 code-golf  game 

24
使字符串嗡嗡作响
您将得到一个仅包含英文字母的字母,小写和大写字母(ASCII 65-90和97-122)的字符串。您的任务是输出Fizz-Buzzified版本的String。 如何对字符串进行Fizz-Buzzify? 如果英文字母中的每个字母均具有偶数索引(该字母必须为1索引:),则将其a-&gt;1,b-&gt;2,...,z-&gt;26转换fizz为小写字母和FIZZ大写字母(f -&gt; fizz, F -&gt; FIZZ)。 buzz如果英文字母的小写字母和BUZZ大写字母(e -&gt; buzz, E -&gt; BUZZ)都会变成英文字母。 让我们举个例子,使用字符串CodeGolf(为清楚起见添加空格)来说明算法: "C o d e G o l f" -&gt; "BUZZ buzz fizz buzz BUZZ buzz fizz fizz" ^ ^ ^ ^ ^ ^ ^ ^ 1 1 0 1 1 1 0 0 (1 …
21 code-golf  string 

26
A或An An?
在英语中,有乐趣和之间的简单区别an和a:使用an开始以元音字前面时,和a当单词以辅音开始。 为了简单起见,an在以元音(aeiou)a开头的单词之前,以辅音开头的单词之前。 输入值 仅包含可打印ASCII字符的字符串,[?]出现在必须选择插入an或的位置a。[?]总是出现在一个字之前。您可以假定该句子在语法上是正确的,并且格式与通常一样。 输出量 [?]用适当的单词(an或a)替换的输入字符串。您不必担心大写! 何时大写 如果单词前面没有字符(输入中的第一个),或者.?!后面带有空格,则将其大写。 例子 Input: Hello, this is [?] world! Output: Hello, this is a world! Input: How about we build [?] big building. It will have [?] orange banana hanging out of [?] window. Output: How about we build a big building. It will …

6
ASCII连接的六边形
总览 给定许多六角形,将它们排列成50乘50 ASCII艺术图像范围内的连接形状。您可以选择任意形状-只要您将其连接,就可以发现最适合打高尔夫球的形状。如果它们大于一个六边形,则可能会有孔(否则,六边形的数量将是不明确的)。 布局 所有六边形都必须采用以下形式(仅此大小和方向有效): __ / \ \__/ Note there are 2 underscores per horizontal edge. 如果两个六边形共享一条边,则它们直接相连: __ __ / \__ / \ \__/ \ \__/ \__/ or / \ \__/ 如果两个六角形仅共享一个顶点,则它们不连接: __ __ / \/ \ \__/\__/ 共享半边也不算是已连接: __ / \ \__/ / \ \__/ 如果存在仅使用直接连接的六边形从任意六边形到其他任意六边形的路径,则连接六边形的集合。 孔洞 相连的六边形集合中的六边形大小的孔算作六边形,因此任何给定的ASCII艺术作品都具有明确的六边形数。 …

20
查找一年中每个月的最后一个星期日
在140个字符内已知F#解决方案,这是Rosetta代码问题。 输入年份的标准输出或字符串变量中的必需结果2014: 2014-01-26 2014-02-23 2014-03-30 2014-04-27 2014-05-25 2014-06-29 2014-07-27 2014-08-31 2014-09-28 2014-10-26 2014-11-30 2014-12-28 根据要求,在1900年: 1900-01-28 1900-02-25 1900-03-25 1900-04-29 1900-05-27 1900-06-24 1900-07-29 1900-08-26 1900-09-30 1900-10-28 1900-11-25 1900-12-30 和2000: 2000-01-30 2000-02-27 2000-03-26 2000-04-30 2000-05-28 2000-06-25 2000-07-30 2000-08-27 2000-09-24 2000-10-29 2000-11-26 2000-12-31 之所以如此,是因为大多数语言中的日期似乎都带来了尴尬。除了允许日期库,我希望能看到它们!但是,如果在基本语言之外,请在帖子名称中声明(例如C#+ Jon Skeet的NodaTime)。 说明: 年份范围1900至3015 阳历日历 如果其他方面不重要,则英国/伦敦的常规做法。 使用命令行开关或stdin的程序很好,将结果生成到stdout 取年份值并返回字符串的函数也很好。 不包括标准漏洞。期待APL,J,K解决方案,并看到一些新的日期库。
21 code-golf  date 

8
Java中引发IllegalArgumentException的最短代码
Okey,我们都知道在Java中引发IllegalArgumentException的正常方法: throw new IllegalArgumentException(); // 37 characters 但是必须有更短的方式(以更少的字符为单位)。我们如何用更少的代码产生java.lang.IllegalArgumentException? 该代码段必须在Java 7中编译并运行。 没有导入/外部软件包(例如,不使用java.util.Arrays.toString()) 唯一的例外:java.lang,因为它是自动导入的。 您可以添加自己的方法/类。 它必须抛出java.lang.IllegalArgumentException 编辑:错误输出(stacktrace)必须将其命名为java.lang.IllegalArgumentException,因此没有其子类。 要有一个起点,请执行以下操作: class Titled { public static void main(String[] args) { throw new IllegalArgumentException(); } }
21 code-golf  java 

14
查找the草
Semordnilaps(也称为异回文,半回文,半回文,反义词,mynoretehs,可逆字谜,单词反义词或书呆子)是单词,当向后拼写时也就是单词。一些示例是: 病房&lt;=&gt;抽奖 已开采&lt;=&gt;牛仔布 零件&lt;=&gt;表带 给定一个正整数N(通过函数参数或STDIN),从此英语单词列表中返回/输出一个semordnilaps 列表,这些单词正好具有N个字母。单词列表可以作为文本文件保存在您的计算机上本地:w.txt。您也可以从url获取列表,但是它将包含在字节数中。 规则: 回文不属于semordnilaps!因此,单词“中午”,“转子”和“雷达”不应包括在列表中。 列表中仅应包含一个单词(在semordnilap对中)。因此,如果“狗”在列表中,则“神”不应存在(与其中包括哪一个无关)。 如果没有semordnilaps,则输出应为空字符串,0,FALSE或其他指示没有结果的字符串。即使没有结果,该功能也必须起作用。 这是代码高尔夫球,因此以字节为单位的最短代码获胜! 排行榜 这篇文章底部的Stack Snippet从答案a)生成目录,答案是每种语言的最短解决方案列表,b)则是总体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, &lt;s&gt;104&lt;/s&gt; &lt;s&gt;101&lt;/s&gt; 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [&gt;&lt;&gt;](http://esolangs.org/wiki/Fish), 121 bytes 显示代码段 var QUESTION_ID=42090,OVERRIDE_USER=44713;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&amp;pagesize=100&amp;order=desc&amp;sort=creation&amp;site=codegolf&amp;filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&amp;pagesize=100&amp;order=desc&amp;sort=creation&amp;site=codegolf&amp;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 …
21 code-golf 

23
从索引生成Excel列名称
这是一个现实生活中的问题。当然,我们已经解决了它,但是它总是觉得它本可以做得更好,因为它太冗长和round回。但是,我的同事们都没有想到更简洁的编写方式。因此,我将其表示为代码高尔夫球。 目标是将非负整数转换为字符串,这与Excel呈现其列标题的方式相同。从而: 0 -&gt; A 1 -&gt; B ... 25 -&gt; Z 26 -&gt; AA 27 -&gt; AB ... 51 -&gt; AZ 52 -&gt; BA ... 16,383 -&gt; XFD 它必须至少工作到16,383,但是也可以接受(尽管没有奖励积分)。我最期待C#解决方案,但是,按照代码高尔夫球的传统,任何实际的编程语言都是受欢迎的。

25
代码高尔夫:排列
编写一个函数,该函数接受一组整数(可以是列表,数组或任何其他具有不同数字的容器)作为输入,并输出所有其排列的列表。 Python(95个字符): p=lambda s:s and sum(map(lambda e:map(lambda p:[e]+p,p(filter(lambda x:x!=e,s))),s),[]) or [[]] 用相同的语言击败真是太好了,但是其他语言的实现实在值得欢迎!

30
e的近似值
我们都知道,用麦克劳林级数展开式可以近似地表示出用e表示的欧拉数对某些变量x的幂次: 通过让x等于1,我们得到 挑战 通过输入N,以任何近似欧拉数的语言编写程序,并计算第N个项的级数。注意,第一项的分母为0 !,而不是1 !,即N = 1对应于1/0!。 计分 字节数最少的程序获胜。

24
十针保龄球得分-世界保龄球版
世界保龄球计分 许多人去了当地的保龄球中心打了几场保龄球,而且许多人仍在努力计算分数。世界保龄球馆引入了简化的计分系统,以吸引更多的人参加这项运动。该计分系统用于国际比赛。 计分系统的工作方式如下(来自Wikipedia): 世界保龄球计分系统(称为“当前帧计分” [32])按以下方式授予图钉: 罢工:30(无论随后的掷骰结果如何) 备用:当前帧的第一卷上有10多个掉落 打开:当前帧的总落差 如果您不熟悉十针保龄球,这里有个回顾。 保龄球道的尽头有10个插脚,目标是用保龄球将它们全部击倒。您得到2卷球来尝试将它们全部击倒,最好是在第一卷时将它们全部击落(称为打击)。如果确实有罢工,则说明该帧已经完成,您无需再次掷球。罢工价值30。 如果您没有全部淘汰十人,您将获得一卷。如果您击倒所有其余的引脚,则称为备用。得分价值10针+第一卷击倒的针数。例如,如果我击倒7个针脚,然后设法击倒其余3个针脚,那将值17。 如果在第二次掷骰后未能击倒全部十个骰子,则称为开架。得分值相当于该帧被击倒的引脚总数。 一个游戏中有10帧。如果您熟悉传统的保龄球计分,那么在第10帧中,World Bowling Scoring并不会增加您的得分。在传统的保龄球计分中,需要12次连续击球才能获得300分的完美分数,而世界保龄球计分仅需要连续10次击球。 挑战 您的挑战是从分数表中计算给定值的分数。 在得分表上,未命中用破折号(-),带X的罢工和带斜杠(/)的备用项表示。如果这些都不适用,那么落下数量将简单地用数字(1-9)表示。犯规和分裂也会记录在得分表上,但是您不必担心这些。 输入项 系统会为您提供一个字符串,其中包含每帧的乐谱,总共有10帧。每个帧最多可以有两个值,如果有罢工,则每个帧将只有1个值。您的输入可能是函数的字符串参数,是从文件中还是从STDIN中读取的。 例如,如果我在第一卷上按了1个销,然后按了2个,则框架看起来像“ 12”。这并不意味着12(十二),而是意味着1和2,总计为3。 如果我错过了两个滚子(装订线球)的每个销钉,它将看起来像这样的“-”(0分)。 每个帧将由一个空格分隔。 样品输入 -- 9- -9 X -/ 8/ 71 15 44 X 为了分解这个例子, 框架1(-)-两个投掷都错过了。得分0 帧2(9-)-第一局9落败,第二局错过。得分9 赛局3(-9)-第一局全败,第二局9分。得分9 赛局4(X)-强袭,淘汰了全部10人。得分30 框架5(-/)-备用,第一个错过全部,第2个落下全部失败。得分10 + 0 = 10 框架6(8 /)-备用,第一卷上有8根针,第二卷上的另一根被击倒。得分10 + 8 = …

16
Sigmafy表达
对于那些不知道的人,Sigma 是希腊字母,在数学中被大量用作求和符号。给定一个表示根据表达式的字符串,我们将表示È (ķ ),计算结果之和为È (ķ ),对于每个ķ ∈ { 1 ,2 ,3 ,4 ,5 }。简而言之,您应该找到S使得:kkkE(k)E(k)E(k)E(k)E(k)E(k)k∈{1,2,3,4,5}k∈{1,2,3,4,5}k\in\{1,2,3,4,5\}SSS S=∑k=15E(k)S=∑k=15E(k)S=\sum^5_{k=1}E(k) 表达式的示例:E(k)=k2+k2E(k)=k2+k2E(k)=\frac k 2 + k^2 眼镜 您可以保证: 该表达式有效,因此不包含任何错误,并且取决于所选择的语法(例如:如果仅支持2*k,则不会存在2k) 只能在结果中定义值,因此不会出现1/0,inf或之类的值nan 您可以假定上面的表达式适合您选择的编程语言的限制,因此不会导致溢出或任何其他与限制有关的错误 k可以选择其他任何非空白ASCII字符代替 您的程序必须支持以下操作: 此外(+,plus(),add(),sum()) 减法(-,minus(),subtract()) 幂(**,^,pow()或他人,应注明),与负基地和指数支持 平方根的形式sqrt(k),k^0.5,k**0.5,或者其他但是你想 乘法与除法 提交可以是完整程序,也可以是函数,同时提及其用法 输出时允许任何尾随/前导空格 最低精度:2位小数 测试案例(带有k) +---------------+--------------+ | Input = E(k) | Output | |---------------+--------------| |2*k | 30 | |---------------+--------------| …

30
尝试做一个正方形!
任务 给定一个非空白可打印字符,对该输入进行3x3正方形表示。例如,如果输入为#,则输出为: ### # # ### 规则 输出格式是严格的,尽管允许使用尾随换行符。这意味着中间需要空格,并且需要分隔三行的两个换行符。 测试用例 输入: # 输出: ### # # ### 输入: A 输出: AAA A A AAA 输入: 0 输出: 000 0 0 000 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。

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.