Coasters & Shifting Pattern Fixed
Coasters@Groovy
murkey-satyrさんの解。Groovyでは、文字列の n 回繰り返しは、
"hello"*3 // ==> "hellohellohello"
と書けるが、n は、整数でなくても良いようだ。小数点以下が切り捨てられて扱われる。本問の場合、入力は、7 か 11 か 13 で、7 の場合は、n は 1、それ以外の場合は、2 したい。私の解では、
b="|$s|\n"*(288%l)
のように、288%l (where l is 7, 11, or 13) で、1 または 2 を得ていた。整数にする必要がなければ、以下のように、より簡単に得られる。
e="|$w|\n"*(n/5)
Shifting Pattern Fixed@JavaScript
$.slice(print($),-1)
print()のリターンは、undefined だ。slice() の引数は、undefined だと 0 とみなすようだ。試してみたところ、
"hello".slice(undefined,4) // ==> "hell" "hello".slice(null,4) // ==> "hell" "hello".slice("0",4) // ==> "hell"
となった。
Shifting Pattern Fixed@C
naiさんの解は、strcat() を使ったものだった。strcat() を使う方法は頭に浮かんでいたが、短くならないだろうと思い、ためしもしなかった。s+=n を行う位置も絶妙だな。anarchy golf の C の場合、関数呼び出しの引数は、後ろから評価されるようだ。
inaniwaさんの解もみごとだ。char* を使うことで、一文字ずつ前にずらしていく方法。よくここまで短くなるな。さすが。
問題は単純なので、色々な方法を思いつくのは難しくないが、それを確実に短くしていくところがプロゴルファーですね。う〜んかなわん。