|
分類:[Java]
2012/08/30(Thu) 14:49:22 編集(投稿者)
よろしくお願いします。
「Javaによるアルゴリズムとデータ構造」著柴田望洋
下記ソースで、出力が以下のようになるのですが、途中の出力から 1番目の出力「00000000」出力後、printメソッドが呼ばれたあと、7番目の出力結果「00000007」までfor文が繰り返されたあと、どのようなロジックで「00000010」が出力されるのでしょうか。
出力 00000000 00000001 00000002 : 77777777
ソース
// 各列に1個の王妃を配置する組合せを再帰的に列挙
class EightQueen {
static int[] pos = new int[8]; // 各列の王妃の位置
//出力 static void print() { for (int i = 0; i < 8; i++) System.out.printf("%2d", pos[i]); System.out.println(); }
//--- i列目に王妃を配置 ---// static void set(int i) { for (int j = 0; j < 8; j++) { pos[i] = j; // 王妃をj行に配置 if (i == 7) // 全列に配置終了 print(); else set(i + 1); // 次の列に王妃を配置 } }
public static void main(String[] args) { set(0); // 0列目に王妃を配置 } }
|