Bła*_*lik 3 java computer-science
我面临以下问题:
我有一块大小为M × N的方块.在java中制作它的最佳方法是什么,当给定的坐标超出界限(或带负值)时,它将从棋盘的另一侧返回方形?我正在寻找一些切割器使用数学.可能是模数运算符,但我希望它能用于负值.怎么做对了?
例如:
当M = N = 10时
//Pseudocode of course
int[10][10] board
//Counting elements from 0, so 10 would normally generate array OOB exception
//I want it to work like this:
board[-1][10] == board[9][0]
Run Code Online (Sandbox Code Playgroud)
您将使用模运算符.使用的通用公式(对于任意大的正/负整数)是:
(n % SIZE + SIZE) % SIZE
Run Code Online (Sandbox Code Playgroud)
但是,我会将它封装在一个函数中,而不是用这些公式来混淆代码:
int getCell(int i, int j) {
return board[(i % M + M) % M]
[(j % N + N) % N];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |