int valid(int x, int y, int z) { return x >= 0 && x < n && y >= 0 && y < n && z >= 0 && z < n; }//查询数组是否越界 int find(int i, int j, int k,int m) { if (m == 4) { n3++;//全部搜到则计数器加一 return 0; } int a; for (a = 0; a < 6; a++){ int y = j + dy[a]; int z = k + dz[a]; int x = i + dx[a]; if (valid(x, y, z) && !n2[x][y][z] && m1[m] == n1[x][y][z]) { n2[x][y][z] = 1;//标记已经搜索过的区域 find(x,y,z,m+1);//如果搜到,则继续搜索 n2[x][y][z] = 0;//清空已搜到区域 } } }
直接放代码,两个函数,用于在三维空间搜索。