点灯游戏:点一下鼠标,十字范围内的灯会明暗变换,最后都变亮或者熄灭。曾经公司有朋友在玩,我提议用编程解答该问题,第一个解答是穷举法,现在这个更快速一些,最后的答案竟然是有些初始值没有答案!
#include
<
iostream
>
using
namespace
std;
#define
N 5


int
puzz[
32
]
=
...
{
0, -1, -1, -1, -1, -1, -1, 2335592,
-1, -1, 7696412, -1, -1, 5690228, -1, -1,
-1, 3290808, -1, -1, -1, -1, 1152464, -1,
-1, -1,-1, 4671140, 6612428, -1, -1, -1,}
;
void
int2Matrix(
int
value,
int
matrix[N][N])
...
{
for (int i = 0; i < N; i++)
...{
for (int j = 0; j < N; j++)
...{
int shift = i * N + j;
matrix[i][j] = ((value >> shift) & 1);
}
}
}

int
matrix2Int(
int
matrix[N][N])
...
{

本文介绍了一个5x5点灯游戏,玩家每次点击会改变十字范围内灯的状态。探讨了用编程方法解决此类问题,从最初的穷举法到更高效的算法,并揭示了某些初始状态可能无法达到所有灯都相同状态的有趣现象。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



