我想知道是否有一个命令/方法在Motorola 68000程序集中执行模数?
我想执行d4 mod 1000和d3 mod 100.
目前我正在使用以下公式,但这需要几行,
如果一个mod n则a - (n*int(a/n))
我已经看到了d0 mod d1的这个公式
CLR.L D2
MOVE.W D0,D2
DIVU D1,D2
SWAP D2
Run Code Online (Sandbox Code Playgroud)
谢谢你的回答.
我有一个多米诺骨牌问题,需要将polyominos放在板上.我使用以下类型来支持这一点.
type Block = (Int, Int)
type Polyomino = [Block]
type Board = [Polyomino]
Run Code Online (Sandbox Code Playgroud)
我的解决方案的一部分是一个功能,它检查多边形的任何块是否已经放置在电路板中.
unPlaced :: Polyomino -> Int -> Int -> Board -> Bool
unPlaced _ _ _ [] = True
unPlaced ((a, b):cs) x y b = --check if in Board
Run Code Online (Sandbox Code Playgroud)
(x并且y是当前多联骨牌的补偿)
我知道我可以elem用来检查电路板中的每个多面体
unPlaced ((a, b):cs) x y b:bs = if (((a+x),(b+y)) `elem` b)
then False
else unPlaced ((a, b):cs) x y bs
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何完成这个解决方案,因为在检查完每个元素之后我无法"刷新"我的电路板.
我相信一个功能a -> [[a]] -> Bool将允许我完成这一点,所以任何帮助表示赞赏!