开始入坑蓝桥杯,
由于疫情不知道什么时候才举办了,
正好有时间去学习下。
一日一题
如图p1.png所示,在二维平面上有无数个1x1的小方格。
我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。
你能计算出这个圆里有多少个完整的小方格吗?
- 思路:设半径为r,初始值为0,最大半径为r,再设x,y作为从圆心出发的坐标轴, 套用数学公式:x^2 + y^2 = R^2(想起高中不努力的日子)
x2+y2描述的是圆上离坐标原点某一点
所以我们需要求的是在圆内的小方格,即要求首先是小方格的边上的点必须在圆内,故x^2 + y2<=R2。
import java.util.HashMap;
public class Main2 {
public static void main(String[] args){
int count = 0;
int r = 1000;
for (int x = 1;x<r;x++){
for(int y = 1;y<r; y++){
if(Math.pow(x,2)+Math.pow(y,2) <= Math.pow(r.2)){
count++;
}
}
}
System.out.println(count*4) //俩个for语句求的只是四分之一圆上的小方格
}
}
ps:
坚持每天搞一道或者两道题出来!!