栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

蓝桥杯Java真题练习:方格计数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

蓝桥杯Java真题练习:方格计数

目录

题目描述思路源代码其他真题

题目描述

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

我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。
你能计算出这个圆里有多少个完整的小方格吗?

注意:需要提交的是一个整数,不要填写任何多余内容。

思路

这道题的话,是填空题。
思路就是暴力枚举。
以圆的圆心为原点建立xOy坐标系。分成4个相等的部分,我们求其中一部分,最后乘4即可。
我们以第一象限来求,以方格的右角点为标记。满足xx+yy<=1000*1000,ans++

答案: 3137548

18年的b组第二题这么简单,属实有点舒服。

源代码
public class Main {
	public static void main(String[] args) {
		int ans=0;
		for(int i=1;i<1000;i++) {
			for(int j=1;j<1000;j++) {
				if(i*i+j*j<=1000*1000) {
					ans++;
				}
			}
		}
		System.out.println(ans*4);
	}
}

优化之后的方法:

public class Main {
	public static void main(String[] args) {
		int ans=0;
		int y=1000;
		for(int x=1;x<1000;x++) {
			while(x*x+y*y>1000000&&y>0){
				y--;
			}
			ans+=y;
		}
		System.out.println(ans*4);
	}
}
其他真题

链接: 最全的2021蓝桥杯算法课《算法很美》的学习笔记总目录+真题详解.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号