Questions tagged «code-golf»

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

30
Autogram程序
这句话使用了两个a,两个c,两个d,二十八e,五个f,三个g,八个h,十一个i,三个l,两个m,十三个n,九个o,两个p,五个r,二十五s,二十三个t,六个v,十个w,两个x,五个y和一个z。 这样的句子被称为自动词。您的任务是编写一个具有类似属性的程序或函数:它将一个字节作为输入,并输出一个整数,表示该字节出现在程序源代码中的次数。如果其输入未出现在其源中,则应输出0。 您的程序不得直接或间接读取其自身的源代码,而必须将其提供给输出的所有数据硬编码为quine样式。您的程序的长度必须至少为一个字节。 这是代码高尔夫,因此最短的条目(以字节为单位)获胜。我不会接受答案,请随时使用您喜欢的语言竞争最短的解决方案。 强烈建议您在帖子中添加解释。 排行榜 以下是总体得分和每种语言的排行榜: 显示代码段 var QUESTION_ID=162408,OVERRIDE_USER=21034;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 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 a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> …

30
上下上下
挑战: 给定正整数输入n,创建一个遵循此模式的向量: 0 1 0 -1 -2 -1 0 1 2 3 2 1 0 -1 -2 -3 -4 -3 -2 -1 ... ±(n-1) ±n 或者用词来解释:向量从处开始0,递增1直到它达到不属于序列的最小奇数正整数,然后递减直到它达到最小(幅度)甚至是负整数。不是序列的一部分。它以这种方式继续直到n到达。该序列将在正端n,如果n是奇数,阴性n,如果n是偶数。 输出格式灵活。 测试用例: n = 1 0 1 ----------- n = 2 0 1 0 -1 -2 ----------- n = 3 0 1 0 -1 …

30
重复!阶乘!
不要与查找阶乘相混淆! 介绍 整数的阶乘n可以由n计算 != Ñ × (ñ - 1 )× (ñ - 2 )× (。。。)× 2 × 1n != n × (n − 1 )× (n − 2 ) × (。。。)× 2 × 1ñ!=ñ×(ñ-1个)×(ñ-2)×(。。。)×2×1个n!=n\times(n-1)\times(n-2)\times(...)\times2\times1 这是相对容易的,没有什么新鲜的。但是,阶乘可以扩展为双阶乘,例如 n !!= Ñ × (ñ - 2 )× (ñ - 4 )× (。。。)× 4 × …

20
字母加农炮
发射炮弹,使其在飞行的第一个眨眼中由N树梢上升,在第二个眨眼中由N-1树梢等,直到到达其轨迹的最高点。然后,它每眨眼一次就掉下1、2等树梢,直到掉到地上。同时,炮弹以1个树梢/眨眼的恒定速度水平移动。 您的任务是使用来自英语字母表的连续字母绘制轨迹。如果字母用完了,请从重新开始'A'。编写函数或程序。输入是整数N(1≤N≤15)。输出可以是任何合理形式的字符矩阵,例如换行符分隔的字符串或字符串列表。字母可以全部为小写或全部为大写。允许额外的前导和尾随空格。禁止出现标准漏洞。代码越短越好。 in: 5 out: OP N Q M R L S K T J U I V H W G X F Y E Z D A C B B C A D in: 1 out: AB

30
创建一个魔术8球
小时候,我的朋友有一个神奇的8号球,我们会问这个问题,看看这个问题的命运是什么。 挑战 您面临的挑战是编写一个程序(或函数),在运行(或调用)时,从以下可能的答案中输出(或返回)随机答案。(随机为:each output should have a nonzero chance of occurring but they do not need to meet any other criteria) 魔术8球的可能答案是(不区分大小写): It is certain It is decidedly so Without a doubt Yes definitely You may rely on it As I see it, yes Most likely Outlook good Yep Signs …

21
容易相乘的数字
您的任务是确定两个数字是否容易相乘。这意味着,从乘法步骤和加法步骤来看,它们的以10为基数的long乘法在位值之间没有任何进位(重新组合)。当每一对数字相乘等于9或更少且每列的总和等于9或更少时,就会发生这种情况。 例如,331并且1021很容易相乘: 331 x 1021 ------ + 331 662 0 331 ------ 337951 如果我们以其他顺序相乘,也是如此(一如既往): 1021 x 331 ------ + 1021 3063 3063 ------ 337951 但是,431并且1021也不容易相乘,在指示的列之间发生进位: 431 x 1021 ------ + 431 862 0 431 ------ 440051 ^^^ 同样,12并且16也不容易相乘,因为即使相乘没有发生进位,在相乘12 * 6得到get 72时也会发生结转。 12 x 16 ---- + 72 12 ---- 192 …

22
引爆一根弦
给定任何字符串,以三角形的形式打印它,其中文本沿每个对角线上下移动。例如,输入的"Hello World"应输出: d l r d o l W r d o l o W r d l o l l o W r d e l o l H l o W r d e l o l l o W r d l o l o W r …

18
26位歌手,26个字母
根据RollingStone的统计,以下是有史以来 26位最出色的歌手: Aretha Franklin Al Green Ray Charles Robert Plant Elvis Presley Mick Jagger Sam Cooke Tina Turner John Lennon Freddie Mercury Marvin Gaye Bob Marley Bob Dylan Smokey Robinson Otis Redding Johnny Cash Stevie Wonder Etta James James Brown David Bowie Paul McCartney Van Morrison Little Richard Michael Jackson …

30
Code Golf:您自己的宠物ASCII蛇
因此,我给自己写了一条单线纸,在控制台上打印了一条蛇。有点有趣,我想知道如何压缩我的代码... 这是一个(简短的)示例输出: + + + + + + + + + + + + + + + + + + + + 规格如下: 在每行中,一个非空白字符(随您喜欢)将被打印到控制台,最初在其左侧填充29至31个空格。 每次迭代,都会在这三个动作之间做出随机决定 填充量减少1 填充量保持不变 填充量增加1 这样做30次,以在控制台上打印一条30段长的蛇。 以字节为单位的最短答案将获胜。

30
反向阵列求和
您的程序应将数组作为输入。 数组: 永远是一维的 只包含整数 可以为空 程序应反转数组,然后将元素加到原始数组中,例如: 输入: [1, 2, 3] 原版的: [1, 2, 3] 反转: [3, 2, 1] [1, 2, 3] + + + [3, 2, 1] [1+3, 2+2, 3+1] 输出: [4, 4, 4] 测试用例: #In #Out [8, 92], [100, 100] [1, 2, 3], [4, 4, 4] [5, 24, 85, …

30
整数矩阵的行列式
给定一个平方整数矩阵作为输入,输出矩阵的行列式。 规则 您可以假设矩阵中的所有元素,矩阵的行列式以及矩阵中元素的总数在您的语言可表示的整数范围内。 允许输出分数为0的十进制/浮点值(例如42.0代替42)。 允许使用内置函数,但是建议您包括不使用内置函数的解决方案。 测试用例 [[42]] -> 42 [[2, 3], [1, 4]] -> 5 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] -> 0 [[13, 17, 24], [19, 1, 3], [-5, 4, 0]] -> 1533 [[372, -152, 244], [-97, -191, 185], [-53, -397, -126]] -> 46548380 [[100, -200, …

30
将字符串乘以数字!
前一阵子关于将字符串相乘存在一个挑战。它向我们展示了如何不仅可以将数字相乘,而且还可以将字符串相乘。但是,我们仍然无法正确地将数字乘以字符串。已经尝试过这样做,但这显然是错误的。我们需要解决这个问题! 你的任务: 编写一个将两个输入(一个字符串和一个整数)相乘的函数或程序。要将字符串乘以整数(适当),请将字符串拆分为字符,将每个字符重复等于整数的次数,然后将字符重新粘在一起。如果整数为负数,则在第一步中使用其绝对值,然后反转字符串。如果输入为0,则不输出任何东西(乘以0等于零)。 输入: 一个仅由可打印的ASCII字符和换行符以及一个整数(可能为负数)组成的字符串。 输出: 字符串乘以整数。 例子: Hello World!, 3 --> HHHeeellllllooo WWWooorrrlllddd!!! foo, 12 --> ffffffffffffoooooooooooooooooooooooo String, -3 --> gggnnniiirrrtttSSS This is a fun challenge, 0 --> Hello World!, 2 --> HHeelllloo WWoorrlldd!! 得分: 这是代码高尔夫球,最低字节数获胜!

22
建立我的城市
编码人员一直在尝试将数组平整为无聊的一维实体,这让我很难过。 您的任务是展开任意字符串,输出漂亮的城市天空景观。 考虑以下字符串: aaabbbbbccqrrssstttttttPPw 这样看起来更好: tt tt bb tt bb tt aabb sstt aabbcc rrssttPP aabbccqqrrssttPPww (好的,是的,重复的字母使它们看起来更像城市天际线)。 输入一个字符串,复制匹配字符(不一定是字母)的每个小节,然后为我建一座城市! 最短的代码字节获胜。 我实际上以为自己已满足要求,但要回答一些问题: 它必须在地面上 如果需要,您可以有更多的天空(空白行,周围空白处)-但建筑物之间不可以 字母可以在字符串内重复使用(相同的体系结构,不同的位置) 这些字母被假定为ASCII,但是那些支持其他编码(UTF8等)的字母将具有更多特色

30
撤消数字范围
给定一个数字n,创建从0到的范围非常简单n-1。实际上,许多语言都以内置方式提供此操作。 以下CJam程序读取一个整数,然后打印出这样的范围(请在线尝试!): ri, 请注意,它打印出没有分隔符的数字。 挑战 您的任务是逆转此过程。您应该编写一个程序,给定一个代表范围的字符串,该程序返回用于产生该范围的数字。 技术指标 给出的数字没有任何分隔符。 您可以假定该字符串形成有效范围。 您可以为范围使用基于0或1的索引。 您可以假设正确的输出将永远不会超过32,767(因此有效输入的长度永远不会超过152,725)。 您可以假设正确的输出将始终为正(因此您不必处理0或负)。 这是代码高尔夫球,因此最短的竞争性答案(以字节为单位)获胜。 测试用例 0索引: 0123 -> 4 0 -> 1 0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 -> 101 1索引: 1234 -> 4 1 -> 1 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 -> 100

17
给我缠绕一些蛇!
给定一个输入整数n,绘制一条数字蛇,即一个n x n由数字组成的网格,该数字1通过n^2以下方式相互缠绕: 输入n = 3: 7 8 9 6 1 2 5 4 3 输入n = 4: 7 8 9 10 6 1 2 11 5 4 3 12 16 15 14 13 输入n = 5: 21 22 23 24 25 20 7 8 9 10 19 6 1 …
34 code-golf 

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.