1到9的數字填充後每行每列的數字相加都等於15的九宮格算法,九宮算法
1 /// <summary>
2 /// 九宮格算法
3 /// </summary>
4 public void NineTable()
5 {
6 //創建一個三階方陣
7 int[,] arr = new int[3, 3];
8 //第3行的行下標
9 int a = 2;
10 //第2行的行下標
11 int b = 3 / 2;
12 //給數組賦值
13 for (int i = 1; i <= 9; i++)
14 {
15 arr[a++, b++] = i;
16
17 //如果i是3的倍數
18 if (i % 3 == 0)
19 {
20 a = a - 2;
21 b = b - 1;
22 }
23 else //如果i不是3的倍數
24 {
25 a = a % 3;
26 b = b % 3;
27 }
28 }
29
30 StringBuilder sb = new StringBuilder();
31 //遍歷輸出九宮格
32 for (int i = 0; i < 3; i++)
33 {
34 for (int j = 0; j < 3; j++)
35 {
36 sb.Append(arr[i, j].ToString() + " ");
37 }
38 sb.Append("<br/>");
39 }
40 lbNineTable.Text = "輸出九宮格:<br/>" + sb.ToString().Trim();
41 }
View Code
程序運行的結果如下所示:
輸出九宮格:
4 9 2
3 5 7
8 1 6