方格计数问题(省蓝桥杯javaB-2018第二题)

开始入坑蓝桥杯,
由于疫情不知道什么时候才举办了,
正好有时间去学习下。

一日一题

如图p1.png所示,在二维平面上有无数个1x1的小方格。

p1.png

我们以某个小方格的一个顶点为圆心画一个半径为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:
坚持每天搞一道或者两道题出来!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值