组卷题库 > 高中信息技术试卷库
试题详情
小明在玩翻转棋盘的游戏,游戏规则是在一个4*4的棋盘中挑选棋子(棋子只有黑白两面,0表示白,1表示黑),对于每颗被挑选的棋子,要将该棋子和它在棋盘上的上下左右4个相邻位置上的棋子一起翻转,若某个方向上无棋子,则不作处理,最后使得棋盘纯色(纯白或纯黑)。

如上图所示的棋盘,需要选择第2行第2列、第4行第2列两颗棋子,按照规则进行翻转便可使得棋盘变为纯黑。现编写程序找出实现棋盘纯色所需翻转棋子次数最少的方案并输出所挑选棋子的个数,若无答案则输出“无法翻转为纯色”。

解决该问题的算法原理:棋盘翻转方案为0000000000000000~1111111111111111之间的某几种,即十进制数 0~65535,利用枚举算法在0~65535之间枚举,即可找到最优方案。假设被选翻转棋子状态用1表示被选中,0表示不选中。例如某方案的十进制为1028即 2^10+2^2,转化为一个16位的二进制串0000010000000100就表示该棋盘中的第2行第2列、第4行第2列这两个棋子及其上下左右被选中翻转,我们认为该方案选中两个棋子进行翻转。

程序运行界面如下图所示,请回答下列问题。

知识点
参考答案
采纳过本试题的试卷
教育网站链接