原题链接:蓝桥杯2022年第十三届省赛真题-蜂巢
```java
package ___2022年省赛Java大学A组;
import java.util.Scanner;
/**
*
* @author Wzi
*
*我们以 O 为原点定义坐标系,如果一个点 A 由 O 点先向 d 方向走 p 步
*再向 (d + 2) mod 6 方向(d 的顺时针 120◦ 方向)走 q 步到达
*
*即先确认一个方向d开始走p步,然后接下来每次都遵循走当前方向的120°方向走q步
*则这个点的坐标定义为 (d, p, q)。
*/
public class 蜂巢 {
private static int d1, p1, q1, d2, p2, q2;
private static double [] x_way = {-1,-0.5,0.5,1,0.5,-0.5};
private static double [] y_way = {0,1,1,0,-1,-1};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int d1 = sc.nextInt();
int p1 = sc.nextInt();
int q1 = sc.nextInt();
int d2 = sc.nextInt();
int p2 = sc.nextInt();
int q2 = sc.nextInt();
//模拟行动轨迹
double x1 =0,x2=0,y1=0,y2=0;
x1+=x_way[d1]*p1 +x_way[(d1+2)%6]*q1;
y1+=y_way[d1]*p1 +y_way[(d1+2)%6]*q1;
x2+=x_way[d2]*p2 +x_way[(d2+2)%6]*q2;
y2+=y_way[d2]*p2 +y_way[(d2+2)%6]*q2;
double xloc = Math.abs(x2-x1);
double yloc = Math.abs(y2-y1);
int res = (int) yloc;
if(xloc -yloc/2 > 0) {
res+=Math.abs(xloc-yloc/2);
}
System.out.println(res);
}
}
}
0 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复