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 }
程序运行的结果如下所示:
输出九宫格:
4 9 2
3 5 7
8 1 6