第九届蓝桥杯试题解析 2. 方格计数

题目

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

我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。

你能计算出这个圆里有多少个完整的小方格吗?


图?

思路

圆可以分为四个象限, 每个象限中具有的方格数是相同的, 所以我们只需要计算其中一个象限中的数量即可.

每个符合条件的方格都满足靠近圆外侧的顶点坐标在圆内, 所以计算方格的数量就可以转化为计算坐标在圆内的整数顶点的个数.

int r = 1000;

int count = 0;

for (int x = 1; x < r; x++) {

        for (int y = 1; y < r; y++) {

                if (Math.pow(x, 2) + Math.pow(y, 2) <= Math.pow(r, 2)) {

                count++;

        }

}

最后的结果为: 3137548

你可能感兴趣的:(第九届蓝桥杯试题解析 2. 方格计数)