LL Golf Hole 5 - 最上位の桁を数え上げる
Posted feedbacks - Perl
perl countup.pl 300
1 2 3 4 5 6 7 | while($ARGV[0]>=($x=$n++ . '0' x $c)){
print "$x\n";
if($n == 10){
$n=1;
$c++;
}
}
|
余り面白く無いかも知れませんが,範囲演算子とgrepを使って書いてみました。
1 | print join("\n",grep{/^\d0*$/}0..$ARGV[0])
|
#7156さんのをもうちょっと短く。68bytes
1 | while($ARGV[0]>=($x=$n++.0 x$c)){print"$x\n";$n==10&&($n=1)&&$c++}
|
grepでもやってみる。40bytes
1 | $,="\n";print grep/^\d0*$/,0..$ARGV[0]
|
もう若干短く出来ました。
1 | map{print"$_\n"if/^.0*$/}0..$ARGV[0]
|
39bytes
1 | for(0..$ARGV[0]){print"$_\n"if/^\d0*$/}
|
もうちょい縮みます。 32B 。まだなんかあるかも。
1 2 | print"$_
"x/^.0*$/for 0.."@ARGV"
|





takano32
#7116()
[
Ruby
]
Rating1/3=0.33
与えられた自然数までの数え上げを行います。ただし、繰り上がりが起こったときは最上位の桁のみを数え上げます。また、与えられる自然数には0以外の桁が2回以上登場してはいけません。たとえば、300を入力として与えられた場合は以下のような出力となります。
与える自然数についてはリテラルで与える、標準入力で与える、引数で与えるなどは自由とします。
※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。
Rating1/3=0.33-0+
[ reply ]