応用情報技術者

【応用情報 令和元年秋期 午前問1】8進数の計算問題を解説

あるホテルは客室を1,000部屋もち,部屋番号は,数字4と9を使用しないで0001から順に数字4桁の番号としている。部屋番号が0330の部屋は,何番目の部屋か。

  204

  210

  216

  218

数字4と9を使用しない」ということは、数字を8個だけ使用するという事。つまりは8進数で考えればよいという事になります。

スポンサーリンク

4と9を使用しないので、「0,1,2,3,5,6,7,8」の8つの数字だけを使います。なので頭の中で与えられた数列を

  • 0 ➡ 0
  • 1 ➡ 1
  • 2 ➡ 2
  • 3 ➡ 3
  • 5 ➡ 4
  • 6 ➡ 5
  • 7 ➡ 6
  • 8 ➡ 7

に置き換えて計算してさらに10進数に変換すれば、与えられた数字が何番目の数字なのかが分かります。

ただし、問題で与えられている数字「0330」なので、「4と9を使用しない」に関しては深く考えなくても解けます。8進数になっていることさえ押さえていればいけます。

8進数の330を10進数に変換すると

3×82 + 3×81 + 0×80 = 216

となるので330は216番目の部屋となり、正解はウとなります。

おまけ

「4と9を使用しない」という文言は、与えられた値に4以上の数字が使われていた場合には気をつける必要があります。

たとえば、同様の条件で「528」が何番目かを計算する場合、4以上の数字が使われているのでまずは置き換えを行います。

  • 5 ➡ 4
  • 2 ➡ 2
  • 8 ➡ 7

と置き換えることができるので「528」は8進数の「427」だと思って計算します。8進数の427を10進数に変換すると

4×82 + 2×81 + 7×80 = 279

なので528は279番目の数字(部屋)となります。