假设有一个名为
在使用该函数时,
似乎我只得到了正确结果的一部分。我做错了什么吗?谢谢您的帮助。
fn scan(int, int) -> int
的函数。在使用该函数时,
fn count(x: int, y: int) -> int
{
scan(x - 1, y - 1) + scan(x - 1, y) + scan(x - 1, y + 1) + scan(x, y - 1)
+ scan(x, y + 1) + scan(x + 1, y - 1) + scan(x + 1, y) + scan(x + 1, y + 1)
}
我得到了正确的结果。我正在尝试通过将scan
函数折叠在给定的值范围上来获得相同的结果,但似乎无法做到正确。我的当前尝试是:
fn count_fold(x: int, y: int) -> int
{
std::iter::range_inclusive(-1, 1).zip(std::iter::range_inclusive(-1, 1)).fold(0, |a, (i, j)| { a + scan(x + i, y + j) })
}
似乎我只得到了正确结果的一部分。我做错了什么吗?谢谢您的帮助。
scan(x, y)
。这个想法是扫描给定坐标的Moore邻域。 - Arets Paeglis