fc2ブログ



病院の部屋番号

2010.01.21 20:03  パソコン甲子園 2009

パソコン甲子園2009 問題04 病院の部屋番号


4と6の数字を使わない数字の列S = {1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, ...} のn番目の数を求めよという問題です。ただし、nの値は最大1,000,000,000です。

nの値が非常に大きいため、数列を生成して解くことはできません。4と6の2つの数字を用いてはいけないので、10 – 2 = 8 進数でnを表せばよいことになります。ただし、基数変換後の数の各桁の数字をdとすると、dが0~3の場合はそれぞれ0~3、dが4の場合はd+1(4の分)= 5、dが5以上の場合はd+2(4と6の分)に変換して出力します。文字列”01235789”のd番目の文字を返す関数を定義しても良いでしょう。

スポンサーサイト



テーマ : プログラミング - ジャンル : コンピュータ

| コメント(0) | トラックバック(1) | ↑ページトップ |

この記事へのコメント

コメントを書く


管理人にのみ表示

↑ページトップ

この記事へのトラックバック

この記事にトラックバックする(FC2ブログユーザー)

医師がすすめる最高の名医+治る病院 決定版 |吉原 清児
医師がすすめる最高の名医+治る病院 決定版吉原 清児講談社 刊発売日 2008-...

得アマゾン探検隊  2010.01.21 21:35

↑ページトップ