本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如下图所示,在二维平面上有无数个 1×1 的小方格。
![](https://img-blog.csdnimg.cn/img_convert/d8cd1ee88313f7c0d72b32a9d416f7e7.png)
我们以某个小方格的一个顶点为圆心画一个半径为 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
![](https://img-blog.csdnimg.cn/img_convert/900d681fcc4c7adb832e4dc3cb5699a8.png)
代码:
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