MENU

第九届蓝桥杯Java A——方格计数

March 22, 2019 • Read: 3872 • 算法阅读设置

如下图所示,在二维平面上有无数个1x1的小方格

我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。
你能计算出这个圆里有多少个完整的小方格吗?

public class Main {

    public static void main(String[] args) {
        long R = 1000 * 1000L;
        long ans = 0L;
        for (long x = -10000; x <= 10000; x++)
            for (long y = -10000; y <= 10000; y++) {
                long x1 = x + 1, y1 = y;
                long x2 = x + 1, y2 = y - 1;
                long x3 = x, y3 = y - 1;
                if (x * x + y * y <= R && x1 * x1 + y1 * y1 <= R && x2 * x2 + y2 * y2 <= R && x3 * x3 + y3 * y3 <= R)
                    ans++;
            }
        System.out.println(ans);
    }
}
Archives Tip
QR Code for this page
Tipping QR Code