标题:方格计数
如图p1.png所示,在二维平面上有无数个1x1的小方格。
我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。
你能计算出这个圆里有多少个完整的小方格吗?
500000
注意:需要提交的是一个整数,不要填写任何多余内容。
import java.util.*;
public class Main{
public static void main(String[] args){
int r=1000;
int sum=0;
for(int a=1;a<=1001;a++)
{
for(int b=1;b<=1001;b++){
if(a*a+b*b<=r*r)
sum++;
}
}
sum*=4;
System.out.println(sum);
}
}
//3137548
笔记:
计算一个象限*4,在一个象限内,用方格右上角定点代替方格,因为右上角顶点最容易超出范围,如果右上角顶点都没有超出那么这个方格就没有超出范围,所以计算每个方格右上角顶点在园内数目,用距离<=r计算,画图可知,所有右上角顶点正好构成一个点阵矩形,这个矩形正好是原矩形所有店x和y分别加一,所以x和y范围都是[1,1001]。