2018年第九届Java B组蓝桥杯 第二题:方格计数

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

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

2018年第九届Java B组蓝桥杯 第二题:方格计数_第1张图片

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

运行限制

  • 最大运行时间:1s

  • 最大运行内存: 128M

思路:1.每个格子里圆心最远的顶点 离圆心的距离小于等于半径则该格子完整地在圆里。

2.运用勾股定理,i*i+j*j<=50000

3.先求出1/4的数目再乘4

4.暴力遍历50000*50000正方形中每一个方格

要用long:

java错误:编译出错,提示 The literal XXXXXXXXXXXXXXXX of type int is out of range

2018年第九届Java B组蓝桥杯 第二题:方格计数_第2张图片

代码:

public class Main {
public static void main(String[] args) {
        long count = 0;
        for (long i = 1; i <= 50000; i++) {
           for (long j = 1; j <= 50000; j++) {
               if (i * i+j*j<= 50000*50000L){
                    count++;
               }
             }
           }
        System.out.println(count*4);
    }
}

答案:7853781044

你可能感兴趣的:(蓝桥杯,蓝桥杯,java,eclipse,算法)