题目描述
“把你的心,我的心串一串,串一株幸运草,串一个同心圆…”
唱罢,小仙女拿出了坐标纸圆规画起了圆:以坐标(X,Y)为圆心 以R为半径画了一个实心圆环
聪明的你来帮小仙女求一下经过圆覆盖的格点(坐标都是整数的点)的个数叭
输入
多组输入,每组输入三个数 X,Y,R ,(X,Y,R都是整数)
(-1000000000 <= X,Y <=1000000000)
(0 <= R <=1000000000)
输出
整数点的个数
样例输入
0 0 1
0 0 2
样例输出
5
13
提示
样例 0 0 1对应的五个点坐标是 (0,1) (1,0) (-1,0) (0,-1) (0,0)
分析:
数学方法,由圆的方程x2+y2=r2可知y=sqrt(r2-x2),只需要一个象限的点的数量,即可推出所有点数量,求一个象限的点总数可以令x=1–>r,由y=sqrt(r2-x2)求y的坐标整数点。
代码(Java版)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
cin.nextInt();
cin.nextInt();
long r=cin.nextLong();
long sum=0;
for(int x=1;x<=r;x++){
sum+=(long)Math.sqrt(r*r-x*x);
}
sum=sum*4+4*r+1;
System.out.println(sum);
}
}
}