プログラミングのお題スレ Part5
■ このスレッドは過去ログ倉庫に格納されています
0498デフォルトの名無しさん
2014/10/27(月) 00:10:43.57ID:qqJqOOtJ囚人には1からnまでの番号が割り当てられており、下記の手順で処刑を行うものとします
1. 囚人第1号から順に左から囚人を並べる
2. k回目の処刑では番号kを持つ囚人を選び、その右隣の囚人の、さらに右隣の囚人を処刑する
(ひとりおきに処刑するということ。ただし、一番右端の囚人の右隣は一番左端の囚人とする)
(また、囚人第k号が既に処刑されている場合、k+1以降の番号で最も若い番号を持つ囚人を選び、
その右隣の、さらに右隣の囚人を処刑する)
3. 囚人が処刑されて空いたスペースには右側にいた囚人が一つずつずれてスペースを埋める
4. 囚人が最後の独りになるまで上記2、3の手順をくりかえす
最後に残った囚人は恩赦されるものとします。
さて、囚人の人数nが与えられるので、最後まで生き残る囚人の番号を出力して下さい
入力: 4 、出力: 2
入力: 13、出力: ?
■ このスレッドは過去ログ倉庫に格納されています