【每日蓝桥】53、一八年省赛Java组真题“方格计数”

你好呀,我是灰小猿,一个超会写bug的程序猿!

欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!

标题:方格计数

【每日蓝桥】53、一八年省赛Java组真题“方格计数”_第1张图片

解题思路:

本题在求解时我们应该知道,半径为1000,则说明半径上无论是横坐标还是纵坐标,在某一个象限上顶点的坐标一定是小于等于1000的,那么我们就可以例举出每一个顶点的横纵坐标,计算出它的斜边长的平方,一定是小于等于1000*1000的,这样我们就可以算出一个象限上完整格子的个数,之后乘以4就可以得到最终答案。

答案源码:

package 一八年省赛真题;

public class Year2018_Bt2 {

	public static void main(String[] args) {
		int n = 0;
		for (int x = 1; x <= 1000; x++) {
			for (int y = 1; y <= 1000; y++) {
				if (x*x+y*y<=1000000) {
					n++;
				}
			}
		}
		System.out.println(n*4);
	}

}

输出样例:

【每日蓝桥】53、一八年省赛Java组真题“方格计数”_第2张图片

其中有不足或者改进的地方,还希望小伙伴留言提出,一起学习!

感兴趣的小伙伴可以关注专栏!

灰小猿陪你一起进步!

你可能感兴趣的:(每日蓝桥,数据结构,算法,编程语言,java,蓝桥杯)