代码高尔夫:钢琴
挑战
按字符计数的最短代码输出从给定长度的input音符开始的钢琴键盘的一部分。
input将由开始打印键盘的音符( [ACDFG]#|[AG]
)和代表要打印的键的长度(包括第一个音符)的正数组成。
第一个键应该全部打印 – 如果它有一个左锐键,它将被切割,同样的,当开始键是锐利的时候,左键也将被切割。
夏普钥匙不计算在内,只有白色钥匙。
testing用例
Input C 14 Output | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____|____|____|____|____|____|____|____|
Input D# 1 Output ### | ### | ### | ### | ### | | | | | | | _|____|
Input A 7 Output ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____|
代码计数包括input/输出(即完整程序)。
GolfScript – 80个字符
适合#SO没有滚动条的一行:)
' ':s/~~5*\(7&5*\,.4*@+):k;+):c;9,{5<'#'9**' | '4*+3/4<.1>+c*s.+*k>c<n+}%)s/'_'*
GolfScript – 81个字符
' ': /((7&\,.4*@5*+:k;\~~5*+):c;9,{5<'#'9**' | '4*+3/4<.1>+c* +*k)>c<n+}%) /'_'*
格式良好的版本(27 x 3)
' ': /((7&\,.4*@5*+:k;\~~5* +):c;9,{5<'#'9**' | '4*+3/4 <.1>+9* +*k)>c<n+}%) /'_'*
GolfScript – 82个字符
' '/((7&\,.4*@5*+:k;\~~5*+):c;9,{5<3*'### '*' | '4*+20<.5>+c*k)>c<n+}%)' '/'_'*
GolfScript – 85个字符
' '/((7&\,.4*@5*+:k;\~~5*+):c;9,{.5<3*'### '*' _'1/@8=='|'1$3*++4*+20<.5>+c*k)>c<n}%
格式良好的版本(17 x 5)
' '/((7&\,.4*@5*+ :k;\~~5*+):c;9,{. 5<3*'### '*' _'1 /@8=='|'1$3*++4*+ 20<.5>+c*k)>c<n}%
GolfScript – 94个字符
' ': /~~5*:c;(7&5*:^;,:&;['### '3*' | '+.5>+c*1>{^4&*+>&c+)<n}:f~]5*' _'1/{'|'\4*+7*c*f}%
GolfScript – 98个字符
' ': /~~5*:c;(7&5*:^;,:&;['### '3*' | '+.5>+c*^4&*+:^)>&c+):&<n]5*[ '_']{['|'\4*+7*c*^>&<n]}%
GolfScript – 101个字符
' ': /~~5*:c;(7&5*:^;,:&;['### '3*' | '+.5>+c*^4&*+)>&c+)<n]5*[ '_']{['|'\4*+7*c*^4&*+>&c+)<n]}%
GolfScript – 109个字符
' ': /~~5*:c;(7&5*:^;,:&;['##'' ###'.' | '++.' #'+++c*^4&*+>&c+)<n]5*[ '_']{['|'\4*+7*c*^4&*+>&c+)<n]}%
GolfScript – 120个字符
' '/~~5*:c;(7&5*:^;,:&;['##'' ###'.' | '++.' #'+++c*^4&*+>&c+)<n]5*['| '7*c*^4&*+>&c+)<n]3*'|____'7*c*^4&*+>&c+)<
GolfScript – 127个字符
' '/~~5*:c;(7&5*:^;,:&;['## ### ### | ### ### | #'c*^4&*+>&c+)<n]5*['| '7*c*^4&*+>&c+)<n]3*'|____'7*c*^4&*+>&c+)< $ echo -n C 14 | ruby golfscript.rb piano.gs | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____|____|____|____|____|____|____|____| $ echo -n D# 1| ruby golfscript.rb piano.gs ### | ### | ### | ### | ### | | | | | | | _|____| $ echo -n A 7| ruby golfscript.rb piano.gs ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____|
Perl,133(129)个字符
Perl, 167 160 156 147 142 133 D'oh! 147 144 137 134 133个字符
$ _ = shift; grep {5> $ n?y / * /#/:y /#* / | /; $ n ++ - 8 || y // / _} @ Q =(substr((“*##”。(“*##*#|#”)x2)x9, 4 * /#/ +(7&ORD)* 5,1 + /#/ + 5 *popup)。$ /)X9
这是一个129字符的解决scheme,借鉴了摩尔夫Ruby解决scheme的几个想法:
($ _,$ C)= @ ARGV; $ J =($ K = /#/)+ ORD; 对于$ n(0..8){print $ /,substr +(join'',map {8- $ n?5> $ n && $ _%7%4?“###” :“|”:“_ | ___”} $ j .. $ j + $ c),!$ k,-3}
并在Acme :: AsciiArtinator的帮助下 :
sub init_piano{$S=$";$H='#'; ( $ T ,$P,$U)=qw( T | _ | / ) ; $ d =$T.$H.$S.$S;$t = $ d . $H . $ d . $ S .$P.$S.$S.$S.$H;$ t= $ d.$H.$t.$t;};$_=shift;-/-/;&init_piano();$Z=/#/;-/| | | | | | YAMAHA | / ;die grep{4>$n++?y/T/#/:y/#T/ |/;$n-8||y/ /_/;}@q=(m{ // // /// // /// // /// // /// // /// // /// // /// / // // /// // /// // /// // /// // /// // /// // /// / } . substr(${t}x(9),4*${Z}+(7&ord)*5,1+$Z+5*pop).$/)x(8) ; ' \ / | | | | /_\ /';
ruby – 125个字符
146 144 140 137 134 126 125个字符
a,n=$*;h=a[1]?0:1;s=a[0]-h+1 9.times{|t|puts (s..s+n.to_i).map{|i|i%7%4<1||t>4?" | ":"### " }.join[h..-4].tr t>7?" ":n,"_"}
(第二个换行符不是必需的,只是为了避免SO上的滚动条而添加,如果需要,可以用换行符replace分号。)
Ruby 1.9的版本不同,但长度相同(用"_"
replacea[0]
用"_"
replacea[0]
?_
):
a,n=$*;h=a[1]?0:1;s=a.ord-h+1 9.times{|t|puts (s..s+n.to_i).map{|i|i%7%4<1||t>4?" | ":"### " }.join[h..-4].tr t>7?" ":n,?_}
打电话
$ ruby piano.rb C 14
百合花,285 288 291 310 315 330 333 340 350个字符
为了与音乐主题保持一致,下面是用于排版音乐乐谱的语言解决scheme,LilyPond:
x=#ly:string-substitute u=#(x"*""### ""| *** | ** ")t=#(x"###"" | "u)q=#read-char z=#(q)v=#(if(eq?(q)#\#)1 0)y=#(iota(+(*(read)5)1 v))#(format #t"~{~{~a~} ~}"(map(lambda(s)(map(lambda(i)(string-ref s(modulo(+(*(char->integer z)5)i(* v 4))35)))y))(list uuuuuttt(x" ""_"t))))
用法: $ lilypond thisfile.ly <input.in >output.out 2>/dev/null
RetroGolf – Applesoft BASIC:236 239 245 249 257 245 267 285
为了可读性显示在多行中,但应该是单行:
1K$="## | ### #":K$="## #"+K$+K$: FORI=1TO21:F$=F$+"|____":L$=L$+"| ":NEXT: INPUTN$:S=MID$(N$,2,1)="#":O=(ASC(N$)-65)*5+1+S*4:L=VAL(RIGHT$(N$,2))*5+1+S: FORI=1TO5:?MID$(K$+K$+K$,O,L):NEXT:FORI=1TO3:?MID$(L$,O,L):NEXT:?MID$(F$,O,L)
可以在Javascript或模拟器中使用此Applesoft BASIC解释 器进行testing。
C#315
我坚持使用C#打高尔夫球,虽然这不是一个非常简单的语言…
using C=System.Console;class P{static void L(int o,int c,string s){while(c-->0)C.Write(s[(420>>o++%5*2&3)+(91>>(o+2)/5%7&1)*3]);C.WriteLine();}static void Main(string[]a){int i=0,s=a[0].Length-1,c=int.Parse(a[1])*5+1+s,o=(a[0][0]-65+s)*5-s;while(i++<5)L(o,c,"| ## ");while(i++<8)L(o,c,"| | ");L(o,c,"|__|__");}}
Python – 164
k,n=raw_input().split() m=k[1:]>"" n=int(n)*5+1 o=(ord(k[0])-65)*5+4*m for x in["## ### | ### "]*5+[n*"| "]*3+[n*"|____"]:print((x+x[::-1][:-1])*n)[o:o+n+m]
153 154 155 158 159 162 172 180 186 185 188 197 199 200 206 207 209 212 214 215 219 240 244 268字符
为什么只用C或C#或F#(或者B或D)就可以用一个完整的八度音程编程?
(为了清晰起见每60个字符包装)
x=5*scanf("%2c%d");for k=-8:0disp((s={[t="| ### ### ","# ## ",t" "]"| ","|____"}{(k>-4)+!k+1})(1+mod(5*(y=x(2)>1 60)+(-y:x(3))+x(1),rows(s'))))end
是的…这个解决scheme确实计算了一个string的复共轭转置。
用法: $ octave -q thisfile.m <input.in >output.out
C – 197 203 207 216 224 232 240 人物
#define S"# | ### ### ##" main(i,j,l,h,t){char*X[]={"____|"," |",SS,SS},s[i=11];for(scanf("%s%n%d",s,&h,&l);--i>1;puts(""))for(j=t=*s%7*5+h*4;j<t+l*5+h;putchar(X[i/3][j++%(i>5?35:5)]));}
这个相当于194个字符的版本假设缓冲区溢出是好的。
#define S"# | ### ### ##" i=11;main(j,l,h,t){char*X[]={"____|"," |",SS,SS},s;for(scanf("%s%n%d",&s,&h,&l);--i>1;puts(""))for(j=t=s%7*5+h*4;j<t+l*5+h;putchar(X[i/3][j++%(i>5?35:5)]));}
PostScript:239 245 293 312 (普通); 219 224 225 231 (ASCII85)
/r{(%stdin)(r)file token pop}def[(]){mul add}/zr(:-)cvs dup length 1 sub/v exch/pr/s(| ### ### ### | ### ### )([){0 1 vp 5]{s exch z 0 get 5]v 4]s length mod 1 getinterval print}for/ =}>>begin[[[[[/s(| )def[[[/s(|____)def[
二进制版本通过ASCII85编码扩展为只有ASCII可打印字符的219个字符的程序:
/(|____)/(| )[/r/(| ### ### ### | ### ### )<~Ou%G5-$+0=Bl5@JE[d/;P,jagI?HCK@<*JGP,4<rOuSV60p8LhG*5%O8oc=a.=3b)!HsVu23Md=!IHJ_A<K->@5*j;23Md=!HoSBP&-9^09Tk/@ZkI\P"_$^I?I,S+?b-:5*?@Z>?b<9Ou$<H>EUc~>cvx exec[
用法: $ gs -q -dNOPROMPT -dNODISPLAY -dBATCH thisfile.ps <input.in >output.out
F#:224 225,226,248,252,270,276,299,306字符
let x,(/)=System.Console.ReadLine(),String.replicate let t,p=(int x.[0]-60)%7*5,int x.[1]%2 let gsi=printf"%s"(i/((99/s).[t+4*p..t+int x.[2..]*5+5*p]+"\n")) g"| ### ### | ### ### ### "5 g"| "3 g"|____"1
我使用2的模块来检测空间或英镑。 ''是32%2 = 0'#'是35%2 = 1,因为我的条件返回零为false我只是乘以模块的结果。
使用<| 操作员删除一个空格字符。 使用运算符重载来保存另一个字符。
原版的
let piano_long (input:string) = let sharp, flat = if input.[1] = '#' then 4, 1 else 0, 0 let note = (int input.[0] - 60) % 7 let num = int (input.Substring 2) let start = note * 5 + sharp let stop = num * 5 + 1 + flat let top = "| ### ### | ### ### ### | ### ### | ### ### ### |" let middle = "| | | | | | | | | | | | | | |" let bottom = "|____|____|____|____|____|____|____|____|____|____|____|____|____|____|" let mutable piano = "" for i in 1..5 do piano <- piano + top.Substring(start, stop) + "\n" for i in 1..3 do piano <- piano + middle.Substring(start, stop) + "\n" piano <- piano + bottom.Substring(start, stop) printf "%s\n\n" piano
sed,231 235 234 235 237 238 244 268 269 270 276 279 280 282 287 300 307 314 329 338个字符
适用于多达99个密钥。 标准钢琴有52个白键,所以这应该是足够的。
s/.*/CDEFGABC&=0123456789-/ s/(.).=(.*)\1.*/&\2\2\2\2\2\2\2\2\2\2/ s/ .?(.)=(.*)\1.*-/\2/ s/.*#/%&/ : s/((.)(.).*\2)[#-9]/\1 \3/ t s/[^ %CF]/###/g s/C|F/ | /g s/(%....)?.{25}(.*)./\2/p p p p p s/## /| /g s/#[|#]/ |/g p p p y/ /_/
例子:
$ echo C 14 | sed -rf piano.sed | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____|____|____|____|____|____|____|____| $ echo D# 1 | sed -rf piano.sed ### | ### | ### | ### | ### | | | | | | | _|____| $ echo A 7 | sed -rf piano.sed ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## ## ### | ### ### | ### ## | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____| $ echo A 52 | sed -rf piano.sed ## ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ## ## ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ## ## ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ## ## ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ## ## ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ### ### | ### ### ### | ## | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|____|
最后一个例子是打印标准键盘,以及两端的虚拟黑键。
钢琴脚本 – 2个字符
这是一个单线:
go
用法:
PianoScript piano.ps G# 11
输出:
### ### | ### ### | ### ### ### | ### ## ### ### | ### ### | ### ### ### | ### ## ### ### | ### ### | ### ### ### | ### ## ### ### | ### ### | ### ### ### | ### ## ### ### | ### ### | ### ### ### | ### ## | | | | | | | | | | | | | | | | | | | | | | | | _|____|____|____|____|____|____|____|____|____|____|____|
更多关于PianoScript语言的信息可以在这里find。
JavaScript – 195个字符
嘿,高尔夫是一个只对抗自己的游戏吧? 🙂
k=readFile(0).split(' ') q=!k[0][1] r=k[1] o='' for(x=10;x--;){p=k[0].charCodeAt(0)-65+!q s='' for(j=+r+1;j--;){p=++p%7 s+=x>4&&!p|p%3?'### ':x?' | ':'_|___'}o+=s.substring(q,r*5+2)+'\n'}print(o)
由gnarf解决; 移植到KirarinSnow的犀牛(有一个小的修复和格式化的变化); 进一步由gnarf削减; 由KirarinSnow纠正的错误。 由cwallenpoolecachingk[1]
用法: $ cp input.in 0; rhino thisfile.js
$ cp input.in 0; rhino thisfile.js
快速HTML演示版本: Golf Test – 添加readFile=prompt;print=function(a) {document.write("<pre>"+a);}
Python3 – 158
保存在input
与raw_input
。 丢失()
print
k,n=input().split() o=(ord(k[0])-65)*5 n=int(n)*5+1 for x in["## ### | ### "]*5+[n*"| "]*3+[n*"|____"]:print(((x+x[::-1][:-1])*n)[o+3*len(k[1:]):o+n])
F#:355个重要字符
全部在一条线上:
let[|x;y|]=System.Console.ReadLine().Split([|' '|])in[for i in 1..9->let r (a:string) bj (s:string)=s.Replace(a,if i>j then b else a)in((String.replicate(int y+1)"23012123012121").Substring(int(x.[0])-65,int y*2+x.Length).Replace("0","| ")|>r"1""#"0|>r"2""## "0|>r"3"" "0).TrimEnd()|>r"###"" | "5|>r"##""| "5|>r" ""_"8]|>String.concat"\n"|>printfn "%s"
扩展:
let piano() = let[|x;y|]=System.Console.ReadLine().Split([|' '|])in [for i in 1..9-> let r (a:string) bj (s:string) = s.Replace(a,if i>j then b else a) in ((String.replicate (int y+1) "23012123012121") .Substring(int(x.[0])-65,int y*2+x.Length).Replace("0","| ") |> r "1" "#" 0 |> r "2" "## " 0 |> r "3" " " 0) .TrimEnd()|> r "###" " | " 5|> r "##" "| " 5|> r " " "_" 8] |> String.concat "\n" |> printfn "%s"
赛特
165个字符; gribblers Python解决scheme的翻译。
get(l);[k,n]:=split(l);o:=(abs k(1)-65)*5;n:=1+5*val n;(for x in['## ### | ### ']*5+[n*'| ']*3+[n*'|____'])print(((x+reverse x(2..))*n)(o+4*#k-3..o+n));end;
D2(模板):331 370 400 + 17个字符
(基于Ruby解决scheme)。
压缩:
template J(alias T,int b,int e,r...){static if(e)enum J=T!(b,r)~J!(T,b+1,e-1,r);else enum J="";}template K(int i,int t){enum K=t>7?"_|___":t<5&&3&i%7?"### ":" | ";}template R(int t,int s,int l,int h){enum R=J!(K,sh,l,t)[h..$-3]~"\n";}template M(alias k){enum M=J!(R,0,9,k[0]+1,k[$-2]>32?k[$-1]+10*k[$-2]-527:k[$-1]-47,k[0]&1);}
解释:
/** Macros: D = <tt>$0</tt> */ ; /** $(D_PSYMBOL J) (short for "join") will evaluate $(DT!(i,r)) for $(D_PARAM i) in $(D [b..b+e]). Then, these compile-time strings will be concatenated. */ template J(alias T,int b,int e,r...){ static if(e) enum J=T!(b,r)~J!(T,b+1,e-1,r); else enum J=""; } /** $(D_PSYMBOL K) (short for "key") will generate 5 characters as a row of key $(D_PARAM i) at row $(D_PARAM t). */ template K(int i,int t){ enum K=t>7?"_|___":t<5&&3&i%7?"### ":" | "; } /** $(D_PSYMBOL R) (short for "row") will generate the keyboard at row $(D_PARAM t), from key $(D_PARAM s) and sharpness $(D_PARAM h) with a length of $(D_PARAM l) keys. */ template R(int t,int s,int l,int h){ enum R=J!(K,sh,l,t)[h..$-3]~"\n"; } /** $(D_PSYMBOL M) (short for "main") results in the whole keyboard as a string. Example: ----- pragma(msg,M!("C 14")); pragma(msg,M!("D# 1")); pragma(msg,M!("A 7")); ----- */ template M(alias k){ enum M=J!(R,0,9,k[0]+1,k[$-2]>32?k[$-1]+10*k[$-2]-527:k[$-1]-47,k[0]&1); }
由于我们不能从dmd
传递参数,因此必须在代码中完成input。 最多只支持99个密钥。
哈斯克尔: 212 211 208个字符
a=" | " b=" ### " d=concat.cycle e=d[b,b,a,b,b,a,b] f=d[a] txsmn=map(take(5*read s+m).drop(5*length['@'..x]-n))[e,e,e,e,e,f,f,f,d["__|__"]] u(x:'#':s)=txs 2 4 u(x:s)=txs 1 8 main=interact$unlines.u
它仍然采用ascii兼容的字母(特别是序列“@ABCDEFG”),但不再需要Char.ord
ruby – 113字符
运行命令行参数
$ ruby piano.rb A 7 k,c=$* 9.times{|x|puts (((b=x<8?' | ':'__|__')+(a=x<5?' ### ':b)*3+b+a*2)*j=k[0]*5-2+4*s=k.size)[j,c.to_i*5+s]}
ruby – 118个字符
k,c=$* 9.times{|x|puts (((b=x<8?' | ':'__|__')+(a=x<5?' ### ':b)*3+b+a*2)*j=2+k[0]*5+4*s=k.size-1)[j..c.to_i*5+s+j]}
PHP – 208个字符
<?$e=45*substr($a=PIANO,2+$d=!($a[1]^~ì))+9+$d*45;$j=9*$c=4*$d;for($b=ord($a[0])-65,--$c;$j<$e;$f[$i=$j++%9].=($c=($c+!$i)%5)%4<2&$i>3&$b%3!=2?Ü:($c?$i?ß: :))$j%45-36?:$b=++$b%7;for(;$a=$f[$i--];)echo~$a,~õ;
应该有所改善。
input必须以名为PIANO的常数传送。
F# 414 386 372重要人物:
//wins me 2 characters open System //String.replicate, didn't know this existed before reading Juliet let r=String.replicate //print sn times, each time on a newline let P ns=printf"%s"(rn (s+"\n")) //define top rows let t="## ### | ### ### | ### #" //middle and bottom rows can be defined using 'r' let m,b=r 7"| ",r 7"|____" //pick of chars from O to n+O from string, wrap round if we go beyond s.Length let L(s:string)O n=String([|5*O..5*(n+O)|]|>Array.map(fun i->s.[i%35])) //match input string into two halves let[|k;n|]=Console.ReadLine().Split([|' '|]) //work out start pos and length (in chars, not keys) let O,N= let K=int k.[0]-65 //'A'=65, this is why t starts at A if k.[0]='#'then(K+3,int n+2)else(K,int n) //Print 5 top rows, 3 middle rows and the bottom row P 5(L t ON) P 3(L m ON) P 1(L b ON)
哦,还有一个奖励,这个脚本实际上会正确处理“F#372” – 我不会因为在这里粘贴而烦扰你…
System.Console.ReadLine()是这样一个无赖…