A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

描述:小区排列方式呈蜂窝状,如图。
相邻两个小区之间的距离为1。

如何用C语言实现计算任意两个小区之间的最短距离?


------这是入职前在华为OJ平台上做的联系题,一直没解决。

87b112ee19e73a85f2d32eee721ae233201401190735261286492402.png (136.43 KB, 下载次数: 115)

87b112ee19e73a85f2d32eee721ae233201401190735261286492402.png

2 个回复

倒序浏览
我的想法是:
1>以1号小区为原点建立平面直角坐标系
  则1号小区坐标为:(0,0)
     2号小区坐标为:(0,-2)
     7号小区坐标为:(1,-1)
回复 使用道具 举报
2>实际的小区排列方式是以1号小区为中心的圆状,可以计算出每一圈的小区个数,
   以及这一圈中的最大编号和最小编号,
  根据小区排列形状、小区编号,可以计算出任意编号在上述坐标系里对应的坐标,
  然后就可以算出两个小区之间的最短距离。

有空写写伪代码试试可行性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马