ぷろぐらむおいしいよ

技術ネタを適当に書いていきます。

Javaで数独

Javaで9*9の数独を解くプログラムを書いてみた。
http://ideone.com/4SEeK

やってること自体は単純で、一番左上の空いてるマスから順番に1から9のうち入れられそうな数字を入れて試してるだけ。

あるマスに数字n(n=1,2,3…,9)が入れられるかどうかを単純に調べると、縦・横・同じ太枠内の数字を全部見ないといけないのでおおよそ9*9*9回比較する必要がある。
そこであらかじめi行目、j列目、k番目(i,j,k=0,1,2…,8)の太枠内に何の数字があるかを配列で保存しておいて、3回の比較(testBit()を1回呼ぶ)で済むようにしてみた。