2011-01-01 编程之美 1.2 中国相帅问题的一个简洁解法
题目意思大概是,象棋棋盘上只有一相一帅,只能在9宫格内移动,且不能对面。要求给出相帅所有的位置的可能性,只能用一个变量。
只用一个变量,第一感是用位操作。给九宫格编个号:
遍历所有的位置,如果 位置编号 mod 3相同,说明在同一列中。按此思路,书中位操作的解法略显繁杂。这里一个简洁的的解法是:
如果不用位操作的话,另外一个解法比较赞:
最后更新于
题目意思大概是,象棋棋盘上只有一相一帅,只能在9宫格内移动,且不能对面。要求给出相帅所有的位置的可能性,只能用一个变量。
只用一个变量,第一感是用位操作。给九宫格编个号:
遍历所有的位置,如果 位置编号 mod 3相同,说明在同一列中。按此思路,书中位操作的解法略显繁杂。这里一个简洁的的解法是:
如果不用位操作的话,另外一个解法比较赞:
最后更新于