朝日新聞2006年6月2日のパズル横丁問題

問題

000から始まる3桁の数字から4と9を使わないようにする。このようなルールに変更すると元の数字の並びが004⇒005,005⇒006のように変更される。

元の数字のうち,各桁の数字の並べ替えだけで済むのはどの数字か?

解答への道(ヒント)

日本人は4と9を嫌いだからなー。ちなみにナンバーズでは,1,3,5,7を選ぶと賞金が減るらしい。

それはさておき,このような問題の場合,以下のようなアプローチでは大変である。

for( int i=1; i< 1000; i++) {
  iを変換する。
  iと変換した数を比較し,同じ数字が使われていればFind
}

この場合「変換する」部分が大変になる。逆の発想をした方が楽に出来る。

int iok=1;
for( int i=1; i< 1000; i++) {
  if( iが4と9を使っていなければ) {
    iとiokが同じ数字を使っていればFind,iok ⇒ i の変換が起きる
    iok++;
  }
}

001,002,003ともう1件出力されました。これが答え。

 

ワールドカップ開催まで後一週間。

先日のドイツとの親善試合で2点を取り引き分けたことで決勝トーナメントに進めそうな論調が増えてきたけど,私はまず一勝を目標にすべきだと思うな。

8年前1点取った,次は一勝が目標。

4年前のベスト16は無かったものとして,8年前の1点が実績だと思わないと。

4年前はむしろベスト8まで行けた気がする。

そういえばベスト8進出をかけたトルコとの試合をチケットを入手できたので仙台まで見に行った。

4年前はチケット問題のおかげで決勝を含め13試合も生で見てしまった。人生で一番良い一年だった。

まさかワールドカップを生で見ることが出来るとは思わなかった。

もちろんチケットはプログラムを作って入手。おいらはプログラマだからね。

解速度