プログラマ脳を鍛える会 vol.3

2016/08/12に勉強会を開催した記録

問題

1~100までの番号が書かれた100枚のカードが順番に並べられています。 最初、すべてのカードは裏返しの状態で置かれています。

ある人が2番のカードから、1つおきにカードを裏返していきます。 すると、2, 4, 6, … , 100番のカードが表を向いています。

次に、別の人が、3番のカードから2つおきにカードを裏返していきます。 (裏向きのカードは表を向き、表向いているカードは裏返しされます。) また、別の人が、4番のカードから3つおきに、カードを裏返してきます。

このようにn番目のカードからn-1つおきにカードを裏返す操作を、 どのカードの向きも変わらなくなるまで続けたとします。 裏向きになっているカードの番号をすべて求めてください。

引用: CodeIQ 第13回「今週のアルゴリズム:カードを裏返して!」 URL: https://codeiq.jp/magazine/2014/02/5704/

自分で解いた解答

冗長な箇所は多い.参考までに.