问题 A: 整点2018
题目描述
在二维坐标系, 有一个圆,圆心在(0,0),圆的半径是r。问圆内有多少个整点(所谓的整点就是横坐标和纵坐标都是整数的点)。若点P的横坐标是整数a,纵坐标是整数b,那么只要满足aa + bb <= r*r, 那么P就是圆内的整点。
输入 :
多组测试数据。
第一行,一个整数G,表示有G组测试数据。1<=G<=10。
每组测试数据格式:
一个整数r。1<=r<=100。
输出 :
共G行,每行一个整数。
样例输入
5
1
2
3
47
96
样例输出
4
12
28
6920
28916
#include<stdio.h>
int main()
{
// freopen("in.ads","r",stdin);
int n,r,count,cnt=0;
scanf("%d",&n);
while(n--){
scanf("%d",&r);
count=0;
for(int x=1;x<=r;x++){
for(int y=1;y<=r;y++)
if(x*x+y*y<=r*r)
count++;
}
cnt=count*4+r*4;
printf("%d\n",cnt);}
return 0;
}
难度不大,易错点是注意每次读进来的一个数r,都要将count初始化;