第十三届蓝桥杯JavaA组省赛真题 - 蜂巢

解题思路:

注意:

1.静态方法只能访问静态变量

static int[] x = new int[] { -2, -1, 1, 2, 1, -1 };
static int[] y = new int[] { 0, 1, 1, 0, -1, -1 };

或者

static int[] x = { -2, -1, 1, 2, 1, -1 };

static int[] y = { 0, 1, 1, 0, -1, -1 };

都可以

2.并且在Java中,static变量不能在方法内部声明,它们必须作为类的成员变量声明。

import java.util.Scanner;

public class Main {
    static int[] x = new int[] { -2, -1, 1, 2, 1, -1 };
    static int[] y = new int[] { 0, 1, 1, 0, -1, -1 };

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int d1 = scan.nextInt();
        long p1 = scan.nextLong();
        long q1 = scan.nextLong();
        int d2 = scan.nextInt();
        long p2 = scan.nextLong();
        long q2 = scan.nextLong();
        long[] pos1 = new long[2];
        long[] pos2 = new long[2];

        getPositon(d1, p1, q1, pos1);
        getPositon(d2, p2, q2, pos2);
        System.out.print(getWay(pos1, pos2));
    }

    public static void getPositon(int d, long p, long q, long[] pos) {
        pos[0] = p * x[d] + q * x[(d + 2) % 6];
        pos[1] = p * y[d] + q * y[(d + 2) % 6];
    }

    public static long getWay(long[] pos1, long[] pos2) {
        long dx = Math.abs(pos1[0] - pos2[0]);
        long dy = Math.abs(pos1[1] - pos2[1]);
        if (dx >= dy) return (dx + dy) / 2;
        else return dy;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值