【发布时间】:2010-10-13 01:40:03
【问题描述】:
给定一个包含 81 个元素的数组(表示 9x9 网格),我如何遍历每个元素,抓住它周围的三个元素,然后对它们执行操作,然后继续到每行、每列的下三个元素,或子矩阵。查看下方或数独网格以查看布局。
define COL(n) ((n) % 9)
define ROW(n) ((n) / 9)
define SUB(n) ((n / 3) % 9)
例如,我有
int grid[81];
和
int array_x[9], array_y[9], array_s[9];
由于总共9x9的网格可以拆分为以下9个类别,所以每个数组有9个元素,我希望将每列(x轴)的元素三人一组,执行
r = ((a = ~a) & (b = ~b)) | ((b | a) & ~c);
// or
r = ((~a & ~b)) | ((~b | ~a) & ~c);
在它们上,取三个结果数,并在它们上执行,然后将其存储到数组中。
如果这听起来不可能,对不起,我想要一种不同的方式来做到这一点。绝对愿意接受建议...
【问题讨论】:
-
需要 81 个元素的向量而不是 9x9 数组的限制是什么?
标签: c arrays copy elements sudoku