题目
分析
这道题也很直接了当。我用了三维bool数组来存储某一个格子是否被拿掉的状态,然后就是三重循环的设定和统计了。
答案

思考
在C++的约定中,只有全局变量的数组会初始化为全0(对应了false)。如果数组作为局部变量声明,是不会初始化的。
而进行数组初始化的时候,清零初始化可能是最保险的:
memset(cube, 0, sizeof(cube));
但如果我们较真,要将其初始化为1,那么将上面代码中的0改为1可能会引起问题。因为memset按照字节进行设置,而此时如果cube被声明为一个int数组,那么每个int变成了0x01010101(十进制是16843009),不是我们想要的1——后续的判定就都错了。
如果不想用循环进行初始化,在本题中可以将数组声明为bool类型,而相应地做代码的修改即可。
