gpt4 book ai didi

java - 查找矩形网格边缘的单元格

转载 作者:行者123 更新时间:2023-12-01 11:58:25 26 4
gpt4 key购买 nike

如果 n 位于矩形网格 (numRows X numCols) 的边缘,则方法 public static boolean onEdge(int n, int numRows, int numCols) 应给出 TRUE,如果 n 在内部,则应给出 false。例如,(0,4,4) 应该给出 true 或 (2,4,4) 也应该为 true;但 (6,4,4) 是假的。

public static boolean onEdge(int n, int numRows, int numCols) 
{
int originalRow = 0;

if ((n < 0) || (numRows < 0) || (numCols < 0))
return false;

else if (n == originalRow)
return true;

else if (n == numRows)
return true;

else
return false;


}

最佳答案

您可以使用简单的算术:

public static boolean onEdge(int n, int numRows, int numCols)
{
int row = n / numCols; // int / int divides to floor
int column = n % numCols; // column within row

// check if n is in the beginning or final row
if (row == 0 || row == numRows - 1)
return true;

// check if n is in the first or last column
if (column == 0 || column == numCols -1)
return true;

return false;
}

您可以通过将 n 除以您拥有的列数来找到 n 所在的行号。 int/int 始终返回一个 int 值,即下限 1 (3/2 = 1)。

您可以通过使用取模运算符获取上述除法的其余部分来找到 n 所在的列号。

当您拥有这两个值时,您可以检查 n 是否位于第一行或最后一行,或者第一列或最后一列。如果不是,那么它就位于您领域的“中间”。

关于java - 查找矩形网格边缘的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com