“您必须建造更多的塔!”


28

介绍

在策略游戏《星际争霸2》中,有三个“种族”可供选择:人族,虫族和神族。在这一挑战中,我们将重点关注神族和标志性短语“您必须建造更多的塔!” 当您用尽兵力建立军队时,就会显示此信息。因此,要帮助Starcraft社区,您必须编写一个程序或函数来告诉玩家他们到底需要多少个挂架。

挑战

您将得到一个字符串输入,该字符串由一个整数N和以空格分隔的单位列表组成。N将始终为零或正数,并且单位列表将始终具有一个或多个有效单位。N代表玩家当前拥有的塔架数量。您的工作是计算玩家所拥有的塔架数量是否足以构建单位。你的程序或函数必须输出/返回truthy值,如果有足够的供应,或者如果没有足够的供应,你必须输出You must construct ZZZ additional pylons哪里ZZZ是建设单位需要挂架的量。请注意,pylon(s)在需要时必须为复数,而在不需要时为(...1 additional pylon!...2 additional pylons!),则不能为复数。

神族单位和供应成本

这是所有单位及其相应供应成本的列表。挂架额外提供8个电源。

Unit            Supply Cost

Probe           1
Zealot          2
Sentry          2
Stalker         2
HighTemplar     2
DarkTemplar     2
Immortal        4
Colossus        6
Archon          4
Observer        1
WarpPrism       2
Phoenix         2
MothershipCore  2
VoidRay         4
Oracle          3
Tempest         4
Carrier         6
Mothership      8

没有奖金的例子

Input:
   2 Probe Probe Probe Probe Stalker Zealot Carrier Probe Zealot
Output:
   You must construct 1 additional pylon!
Why?
   Adding up the supply costs for all of the units gives 17. The current 2 pylons provide 16 supply, so one more is needed to provide enough for 17.

Input:
   5 Mothership Carrier Probe Tempest HighTemplar
Output:
   true
Why?
   Adding up the units gets 21. The current 5 pylons provide 40 supply, which is plenty enough.

Input:
  0 Mothership Colossus Zealot
Output:
  You must construct 2 additional pylons!
Why?
  Adding the units gets 16. There is no pylons so 2 need to be built to provide enough supply. 

奖金

  1. 任何有经验的Starcraft 2玩家都会知道,在将其转变为母舰之前,您需要一个母舰核心。此外,您一次只能拥有一个母权(无论是实际母权还是母权核心)。如果这些条件都不成立,则输出任何虚假值。如果您的程序可以一次查看只有一个母舰处于活动状态,并且在实际母舰之前建立了一个母舰核心,请从您的字节数中减去20%
  2. 您可能知道的很少,但是联系(神族命令中心)实际上也提供了补给!如果您的程序每次在单位列表中遇到联系时都可以在最大供给量上增加11,请减少字节数10%。请注意,Nexus在构建顺序中的位置并不重要,因此0 Probe Nexus仍会返回true

奖金示例

Input (Bonus 1):
  3 Mothership Zealot
Output:
  false
Why?
  According to the first bonus, a mothership core has to be built before a mothership.

Input (Bonus 1):
  3 MothershipCore Mothership MothershipCore
Output:
  false
Why?
  According to the first bonus, only one mothership can be built and here there is two (MothershipCore -> Mothership and a second MothershipCore).

Input (Bonus 2):
  0 Probe Nexus Probe
Output:
  true
Why?
  According to the second bonus, nexuses add 11 to the maximum supply, allowing both probes to be built.

Input (Both Bonuses):
  0 Nexus MothershipCore Mothership Carrier
Output:
  You must construct 1 additional pylon.
Why?
  There are no pylons, but the nexus provides 11 supply. The motherships take up 2 and 8, respectively and the carrier takes up 6. You need one more pylon to have enough to provide for all 16 supply.

TL; DR

输入由整数和空格分隔的单元名称组成的字符串(来自上表)。如果可以使用N挂架提供的电源(输入中的整数)构建所有单元,则输出真实值。You must construct ZZZ additional pylon(s)如果需要更多的定向塔,则输出,所需定向塔的数量在哪里ZZZ。如有必要,确保将塔架复数。

这是,因此以字节为单位的最短代码(或您语言的计数方法)获胜!

排行榜

这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。

为确保您的答案显示出来,请使用以下Markdown模板以标题开头。

# Language Name, N bytes

N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如:

# Ruby, <s>104</s> <s>101</s> 96 bytes

如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字:

# Perl, 43 + 2 (-p flag) = 45 bytes

您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

var QUESTION_ID=69011,OVERRIDE_USER=36670;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> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


1
是否必须将它们分隔开还是“方便”?
2016年

@muddyfish如果我对您的理解正确,是的,输入必须以空格分隔N unit1 unit2 unit3...
GamrCorps,2016年

会不会有超过9个塔架?我必须准确输出true还是可以接受真实值?
唐·黑斯廷斯

@DomHastings可以大于9。任何真实值都是可以接受的。
GamrCorps

2
哦,加油!有人记得星际争霸:牢笼战士或原始的星际争霸吗?他们也有这句话!

Answers:


4

Ruby,263-30%= 184个字节

v=c=k=0
l,a={PeOr:1,ZtSySrHrDrWmPxMe:2,Oe:3,VyIlAnTt:4,CsCr:6,Mp:8,Ns:-11},ARGV.shift
ARGV.map{|u|k+=l[l.keys.grep(/#{q=u[0]+u[-1]}/)[0]];c+=1if q=="Me";v=!0if c!=1&&q=~/M/}
n=k/8.0-a.to_i
p v ?n<0||"You must construct #{n.ceil} additional pylon#{'s'if n>1}!":nil

用法

ruby sc.rb 0 Probe Nexus


7

Python 3,207 * .9 == 186.3字节。

实现关联奖励。
DSM节省了26个字节。
感谢Tim Pederick,节省了2个字节

x,*l=input().split()
d=-((int(x)*8-sum((('vexuobcl'+2*'clsuie'+4*'Ratahoiesuhihi').count(q[-3:-1])*(1-12*(q[0]>'w'))or 2)for q in l))//8)
print((1,"You must construct %s additional pylon"%d+'s!'[d<2:])[d>0])

干得好!由于您只需要输出一个真实值,所以不必True将其替换1>0为just ,从而可以节省两个字节1
蒂姆·佩德里克

@TimPederick我不确定这是否足够真实。
Morgan Thrapp '16


3
您必须构造更多的python ...
Brian Brian

4

JavaScript,274265 字节(无奖金) 281-10%= 252.9字节

s=>(c=eval(s[a="replace"](" ","-(")[a](/ /g,"+")[a](/\w+/g,m=>m[b="match"](/^(Pr|Ob)/g)?1:m[b](/^([ZSHDWP]|M\w+C)/g)?2:m[b](/^O/g)?3:m[b](/^[IAVT]/g)?4:m[b](/^N/g)?-11:m[b](/^C/g)?6:+m!=m?8:m*8)+")"))>0?true:`You must construct ${Math.ceil(-c/8)} additional pylon${c/8<-1?"s":""}!`

这似乎很长...

演示+说明:

p = s => (c = eval(
  s[a = "replace"](" ", "-(")         //replace the first space (after the number of pylons) with "-" and open the bracket
   [a](/ /g, "+")                       //replace all the remaining spaces with "+"
   [a](/\w+/g, m =>                     //replace any sequence of characters with...
    m[b = "match"](/^(Pr|Ob)/g) ? 1 :   //with 1, if matches "Probe" or "Observer"
    m[b](/^([ZSHDWP]|M\w+C)/g) ? 2 :    //with 2, if it matches bunch of the units with cost 2. "Probe" didn't match already, so it's safe to catch "Phoenix" by only the first letter.
    m[b](/^O/g) ? 3 :                   //with 3, if match is "Oracle"
    m[b](/^[IAVT]/g) ? 4 :              //with 4, if matches "Immortal", "Archon", "VoidRay" or "Tempest"
    m[b](/^C/g) ? 6 :                   //with 6, if it's "Carrier" or "Colossus"
    m[b](/^N/g) ? -11 :                 //don't forget nexuses!
    +m != m ? 8 : m * 8                 //and if's not a number, then it's "Mothership", so with 8. If it's number, it can only be the number of pylons, replace it with itself multiplied by 8.
  ) + ")"                             //close the opened bracket
)) > 0 ? true : `You must construct ${Math.ceil(-c/8)} additional pylon${c/8<-1?"s":""}!`

document.write(
  p("2 Probe Probe Probe Probe Stalker Zealot Carrier Probe Zealot") + "<br>" +
  p("5 Mothership Carrier Probe Tempest HighTemplar") + "<br>" +
  p("0 Mothership Colossus Zealot") + "<br>" +
  p("0 Probe Nexus Probe")
)


我不知道为什么我不看奖金,应该这么做。
nicael

使用-(c>>3)代替保存8个字节Math.ceil(-c/8)。使用c<-8代替节省另外2个字节c/8<-1
尼尔

您的内部比赛不需要/g吗?这样可以节省另外6个字节。也/ob/i看起来像它会为另外5个字节降耗工作。
尼尔

您的测试似乎是错误的-您正在使用,>0但是如果您有完全匹配的内容,那仍然是正确的。显然,出于打高尔夫球的目的,您可以将其切换到<0并反转?:手臂。
尼尔

1
我认为通过使用减法可以进一步节省17个字节。这是我到目前为止所拥有的:s=>(c=eval(s.replace(/ /g,"-").replace(/\w+/g,m=>m[b="match"](/ob/i)?1:m[b](/^([ZSHDWP]|M\w+C)/)?2:m[b](/^O/)?3:m[b](/^[IAVT]/)?4:m[b](/^N/)?-11:m[b](/^C/)?6:+m!=m?8:m*8)))<0?`You must construct ${-(c>>3)} additional pylon${c<-8?"s":""}!`:true
Neil

4

Python 3,293-30%= 205.1字节

实施两个奖励。打印1作为其真实值,并打印0或一个空字符串作为其falsey值。

s='5N 8O5P bDbHeM7P6S7S9W6Z 6O 6A8I7T7V . 7C8C . aM'.split()
m=M=n=o=0
p,*u=input().split()
for v in u:
 S=0
 while'%x'%len(v)+v[0]not in s[S]:S+=1
 n+=S or-11;M+=S>7;m+='pC'in v;o+=m>1or M>1or m<1<=M
q=int(p)+n//-8
print([1,'You must construct %d additional pylon'%-q+'s!'[q>-2:]][q<0]*(o<1))

感谢大教堂Hastings的解决方案帮我剃了好几个字节有‘穷人的ceil’我自己的,和摩根Thrapp的为理念底层's!'[q>-2:],这救了我六个字节,不提指出,在评论中,如何在该位上保存另一个字节。


说明

第1行中的字符串对所有单位及其供应要求进行编码。每个单元用两个字符表示:十六进制数字给出了单元名称的长度,名称的第一个字符(例如8O,观察者;aM母体)。供应需求是序列中编码单元的索引s,通过在空格上分割字符串形成。句号标记未使用的供应量(没有单位需要5或7个供应量),在特殊情况下,Nexus(5N)的索引为0。

第2行初始化值:m是母舰核心M的数量,n是母舰的数量,是总供应成本,并o指示是否违反了母舰建造条件。第3行接受输入,将塔的数量放入p,并将单位列表放入u

在从第4行开始的循环内,Ss当前单位的索引,因此也是当前单位的供应量的索引v。在第6行中,while语句逐步执行,s直到找到该单元。('%x'%len(v)将设备名称的长度转换为十六进制数字。)

第7行更新了总供应成本n(注意特殊情况-11,如果S为零)。然后,它将增加母舰M(由超过7的供应成本标识)和母舰核心m(由pC单位名称中的子字符串标识)的计数。然后,如果这些值中的任何一个大于1,或者如果M至少一个m仍为零,o则设置标志。(实际上,它是递增的,但是稍后我们只关心它是零还是非零。)

q奇怪的是,在第8行中计算出了塔架赤字。天真地,它应该是n // 8 - int(p)(即供应成本的八分之一,减去我们已经拥有的任何塔架)。但是,当我们需要四舍五入时,这将四舍五入。不过,整数除法(//)会向负无穷大舍入,因此我们只对负数进行处理:int(p) - -(n // -8),简化为实际使用的形式。

最后,输出。如果我们只是一个矮的塔,q将是-1,因此是测试q>-2(如果为true,则将其切s出字符串s!,否则保留该字符串)。如果没有塔架不足,q则将为零或正,因此q<0可以在真实值1或输出字符串之间进行选择。最后,如果标志o不为零,则将结果(1或字符串)乘以布尔值False(以数字0处理)将得到假值(0或空字符串)。


3

C ++ 11,732-30%= 512.4字节

使用Dom Hastings的可怜人和ceilMartinBüttner的建议来简化字典。

#include <iostream>
#include <map>
#include <string>
#include <cctype>
using namespace std;
map<int,int>a ={{536,1},{655,2},{677,2},{758,2},{1173,2},{1175,2},{869,4},{891,6},{635,4},{872,1},{997,2},{763,2},{1516,2},{766,4},{630,3},{770,4},{744,6},{1091,8},{563,-11}};
int main(){string b,c;int d,e,l,j,k=0,m=0,n=0,v=0;cin>>d;getline(cin,b);
while(b.size()){e=0;auto z=b.find(" ");c=b.substr(0,z);b.erase(0,((z==string::npos)?z:z+1));
for(int i=0;i<c.size();i++){e+=tolower(c[i]);}
if(e==1516){m++;}else if(e==1091){((m>1)?v=1:v=0);}
if((l=k-(d*8)>0)&&(m==n==1)){j=(int)(((float)l/8)+0.99);cout<<"You must construct "<<j<<" additional pylon"<<((j==1)?"!":"s!")<<endl;}
else{cout<<((m==n==1&&!v)?"True":"False")<<endl;}}

+1欢迎使用编程拼图和Code Golf,以及所有Stack Exchange。这是一个很好的第一答案。如果您需要任何帮助,只需@username在评论开头输入即可,例如@wizzwizz4
wizzwizz4 '16

2

Python 2中,442 359 464 332 314 306 - 10(%)= 275.4

a,*l=input().split(' ');p=int(a)*8;for i in l:p-={"Ne":-11,"Pr":1,"Ze":2,"Se":2,"St":2,"Hi":2,"Da":2,"Im":4,"Co":6,"Ar":4,"Ob":1,"Wa":2,"Ph":2,"MoC":2,"Vo":4,"Or":3,"Te":4,"Ca":6,"Mo":8}[i[:2]+("C"if i[-4:]=="Core")]
e=int(.9+p/8)+1;print[1,"You must construct "+`e`+" additional pylon"+"s!"[e>1:]][p>=0]

如何缩短字典?
NoOneIsHere

2
有很多方法可以做到这一点。例如,JavaScript答案使用正则表达式而不是检查单个字符串。也许您可以尝试查找将每个字符串映射到唯一数字(可能是字符代码的总和)的哈希。这些数字可能比字符串短。
Martin Ender

我不知道,但也许它足够长的东西,如获得储蓄dict(x[:2],int(x[2:]) for x in "Ne-11 Pr1 Ze2".split())

1

Lua 418-10%= 376,2字节

function p(i)i=i:gsub("(%w+)",function(w)q=tonumber(w)*8;return""end,1);n=0;i:gsub("(%w+)",function(w)m=w.match;n=n+(m(w,"^Pr.*")and 1 or m(w,"^Ob.*")and 1 or m(w,"^[ZSHDWP]")and 2 or m(w,"^M.*C")and 2 or m(w,"^O")and 3 or m(w,"^[IAVT]")and 4 or m(w,"^C")and 6 or m(w,"^N")and -11 or 8)end)if n>q then a=math.ceil((n-q)/8);print("You must construct "..a.." additional pylon"..(a>1 and"s"or"")..".")else print(1)end end

实施Nexus奖励。

第一次我在这里发布了一些东西。在为游戏编写Lua脚本时,偶然发现了这一点,感觉像是在做贡献,哈。

注意:该Lua函数假定已经加载了基本库,并且主机应用程序定义了一个print可接受任何非nil值的适当函数。我正在string.gsub尽我最大的能力利用Lua 及其应用程序andor运算符。

这是漂亮的版本:

function pylons(i)
    -- Replace the first word, the number, with a space, while also storing it as a number * 8
    i = i:gsub("(%w+)", function(w)
        q = tonumber(w) * 8
        return ""
    end, 1)
    n = 0
    -- the function passed to gsub gets every word in the string,  and then I misuse Lua's and/or
    -- operator order to assign supply values to string.match calls that do not return nil
    i:gsub("(%w+)", function(w)
        m = w.match
        n = n + (m(w,"^Pr.*") and 1 or
        m(w,"^Ob.*") and 1 or
        m(w,"^[ZSHDWP]") and 2 or
        m(w,"^M.*C") and 2 or
        m(w,"^O") and 3 or
        m(w,"^[IAVT]") and 4 or
        m(w,"^C") and 6 or
        m(w,"^N") and -11 or 8)
    end)
    if n>q then
        a = math.ceil((n-q)/8)
        print("You must construct "..a.." additional pylon"..(a>1 and"s"or"")..".")
    else
        print(1)
    end
end

pylons("5 Nexus Probe Observer Zealot Sentry Stalker HighTemplar DarkTemplar WarpPrism Phoenix MothershipCore Oracle Immortal Archon VoidRay Tempest Colossus Carrier Mothership")
pylons("2 Probe Probe Probe Probe Stalker Zealot Carrier Probe Zealot")
pylons("5 Mothership Carrier Probe Tempest HighTemplar")
pylons("0 Mothership Colossus Zealot")

0

JavaScript(ES6),228-10%= 206

s=>(s.replace(/\w+/g,x=>t+=~~{Ns:-11,Pe:1,Zt:2,Sy:2,Sr:2,Hr:2,Dr:2,Il:4,Cs:6,An:4,Or:1,Wm:2,Px:2,Me:2,Vy:4,Oe:3,Tt:4,Cr:6,Mp:8}[x[0]+x.slice(-1)]-8*~~x,t=7),t=t/8|0,t<=0||`You must construct ${t} additional pylon${t>1?'s':''}!`)

测试

F=s=>(
  t=7,
  s.replace(/\w+/g,
   x=>t+=~~{Ns:-11,Pe:1,Zt:2,Sy:2,Sr:2,Hr:2,Dr:2,Il:4,Cs:6,An:4,Or:1,Wm:2,Px:2,Me:2,Vy:4,Oe:3,Tt:4,Cr:6,Mp:8}[x[0]+x.slice(-1)]-8*~~x),
  t=t/8|0,
  t<=0||`You must construct ${t} additional pylon${t>1?'s':''}!`
)

console.log=x=>O.textContent+=x+'\n';

;['2 Probe Probe Probe Probe Stalker Zealot Carrier Probe Zealot',
'5 Mothership Carrier Probe Tempest HighTemplar',
'0 Mothership Colossus Zealot','0 Probe Nexus Probe'
].forEach(t=>console.log(t+'\n'+F(t)))
<pre id=O></pre>


0

Perl,212个字节的代码+ 3 -p个-10%= 193.5个字节

我敢肯定,我可以再减少一点,对整个for$s(...){...}块都不满意,但是我已经完成了!

$x=$_*8;s/^\d+ //;map{for$s(Pr,Ob,Or,C,V,I,A,T,Z,S,H,D,W,Ph,'.+C',N,'.+p$'){$x-=(1,1,3,6,(4)x4,(2)x7,-11,8)[$i++%17]*/^$s/}}/\w+/g;$x=int$x/-8+.9;$s=1<$x&&'s';$_=$x>0?"You must construct $x additional pylon$s!":1

有趣的片段

  • 可怜的男人ceilint$n+.9-我尝试使用,0|但看起来像溢出!
  • 清单重复:(9)x9收益(9,9,9,9,9,9,9,9,9,9)

用法:

perl -p pylons.pl <<< '3 Mothership Zealot'
1

感谢Tim Pederick帮助您节省了额外的字节!


我相信您的“穷人ceil”只需加上.9,因为您获得的最低小数点为0.125(1/8)。
蒂姆·佩德里克

@TimPederick好点了,我需要节省很多才能保持竞争力!可能值得为我研究其他奖金...
Dom Hastings
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.