gpt4 book ai didi

java - 确定从给定位置到网格边缘的最短距离

转载 作者:行者123 更新时间:2023-12-01 23:00:17 25 4
gpt4 key购买 nike

例如,如果我有 5 x 5 网格并且位置为 13。我想找到每个方向上每条边的绝对距离(不包括对角线)。所以从 13 到左边是 3,到右边是 1,到底部是 2,到顶部是 2。我该如何处理这个问题?

 0  1  2  3  4 
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24

最佳答案

距顶部的距离为行,

int row = (int)(13/5); // 2

距左侧的距离为列,13 除以 5 余数。

int col = (int)(13%5); // 3

距右侧的距离为该列减去总列数 (5)

int colFromRight = 5-col-1; // 1

距底部的距离为该行减去总行数 (5)

int rowFromBottom = 5-row-1; // 2

编辑:

这是一个可能有帮助的小图表

这是一个一维数组,我们希望将其视为二维数组。它有 2 行和 3 列,总共 6 个元素。在我们的程序中,它是一个像这样的一维数组,我使用方括号[]来显示外观而不是语法。

[1][2][3][4][5][6]

从视觉上看是这样的

[1][2][3]
[4][5][6]

因此,为了获取位置 5 的行,我们说

int location = 5;
int row = floor(location/3);

正如您所见,每当行变为 1+ 3 的倍数时,行号就会增加。

<小时/>对于列来说,它是相同的,但有一个余数。

int location = 5;
int column = location%3;

这里,每次位置达到 3 时,余数都会返回到 0,并且列会重新开始(本质上表示新行)。

关于java - 确定从给定位置到网格边缘的最短距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464895/

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