C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 106 を表示中)
■63472 / )  アルゴリズム 8王妃問題
□投稿者/ tkana3 (1回)-(2012/08/30(Thu) 14:42:28)

分類:[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列目に王妃を配置
}
}


返信 編集キー/


管理者用

- Child Tree -