Converting numbers within grid to their corresponding x,y coordinates(将网格内的数字转换为其对应的 x,y 坐标)
问题描述
给定以下网格中的数字(从 1 到 36),我如何确定它们在网格中的坐标 (x,y)?
Given the numbers in the following grid (from 1 to 36), how can I determine their coordinates (x,y) within the grid?
| 0 1 2 3 4 5 6 7 8
------------------------------
0| 1 2 3 4 5 6 7 8 9
1| 10 11 12 13 14 15 16 17 18
2| 19 20 21 22 23 24 25 26 27
3| 28 29 30 31 32 33 34 35 36
即我想要获得的是以下内容:
i.e. what I want to obtain is the following:
| 0 1 2 8
------------------------------
0| (0,0) (1,0) (2,0) ... (8,0)
1| (0,1) (1,1) (2,1) ... (8,1)
2| (0,2) (1,2) (2,2) ... (8,2)
3| (0,3) (1,3) (2,3) ... (8,3)
我试过了:
x = number%9-1;
y = number/9;
适用于除右侧最后一列之外的所有情况.
which works for all cases except the ones in the last column on the right.
所以我想出了:
if (number%9==0) {
x = 8;
y = number/9-1;
}
else{
x = number%9-1;
y = number/9;
}
我的问题是,有没有更聪明的方法来做到这一点?
My question is, is there a smarter way of doing this?
推荐答案
x = (number-1)%9;
y = (number-1)/9;
这篇关于将网格内的数字转换为其对应的 x,y 坐标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将网格内的数字转换为其对应的 x,y 坐标
基础教程推荐
- 从 std::cin 读取密码 2021-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07