以前、枠番の求め方について書いたところ(ここ)、いくつか回答(これ)を頂いた。
さらにもう1つ増えました。
最近(といってももう何年だ?)perlを使っているS賀さんから。
##### その1:最大18頭 #####
for ($n=1; $n<=18; $n++)
{
for ($i=1; $i<=$n; $i++)
{
if ($i<=16-$n){printf("%2d ", int($i+0.99));} # int()は切り上げているだけ
elsif ($n<=24-$i/2)
{
if ($n<=16){printf("%2d ", int(8-($n-$i)/2+0.99));}
else{printf("%2d ", int($i/2+0.99));}
}
else{printf("%2d ", int(8-($n-$i)/3+0.99));}
}
print "\n";
}
##### その2:上限なし #####
$max=18; # 18より大きい数字でもよろしくてよ
for ($n=1; $n<=$max; $n++)
{
for ($i=1; $i<=$n; $i++)
{
if ($n<=16-$i){printf("%2d", int($i+0.99));} # int()は切り上げているだけ
else
{
$k=int(($n-1)/8);
if ($n<=($k+1)*8-$i/$k){printf("%2d", int($i/$k+0.99));}
else{printf("%2d", int(8-($n-$i)/($k+1)+0.99));}
}
}
print "\n";
}
これ、実は結構短くていいんじゃね?
。。。0.99の理由が判ってないのは私だけですかそうですか。
コメントする