解题思路:建立新的坐标系,转换坐标,判断距离
图中坐标只是表示每个六边形的相对位置,不要理解成几何中心的平面坐标!
注意事项:关键在于如何建一个坐标系使得方便判断距离
参考代码:
d1,p1,q1,d2,p2,q2 = map(int,input().split())
xdir = [-2,-1,1,2,1,-1] #六个基本方向的坐标(竖着看对应)
ydir= [0,1,1,0,-1,-1]
def switchloc(d,p,q):#坐标转换函数
x = xdir[d]*p + xdir[(d+2)%6]*q #此处妙啊
y = ydir[d]*p + ydir[(d+2)%6]*q
return x,y
x1,y1 = switchloc(d1,p1,q1)
x2,y2 = switchloc(d2,p2,q2)
x_abs,y_abs = abs(x1-x2),abs(y1-y2)
if x_abs >= y_abs:print((x_abs+y_abs)//2) #判断距离,坐标建得好条件就好判断
else:print(y_abs)
0.0分
3 人评分
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:703 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1271 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:485 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:487 |
【亲和数】 (C语言代码)浏览:628 |
printf基础练习2 (C语言代码)浏览:547 |
用筛法求之N内的素数。 (C语言代码)浏览:595 |
简单的a+b (C语言代码)浏览:683 |
小O的乘积 (C语言代码)浏览:1062 |