2018年 第九屆藍橋杯 Java B組 方格計數

2.方格計數

如圖p1.png所示,在二維平面上有無數個1x1的小方格。

我們以某個小方格的一個頂點爲圓心畫一個半徑爲1000的圓。
你能計算出這個圓裏有多少個完整的小方格嗎? 

注意:需要提交的是一個整數,不要填寫任何多餘內容。

【答案】:以圓的圓心爲座標原點,半徑所在直線爲橫軸和縱軸,將圓劃分爲四個象限。計算出一個象限內的方塊個數再*4即可。

設a,b爲最遠的方塊的長度,r爲圓的半徑長。最遠的方塊的的頂點一定不會超過圓的半徑因此a*a+b*b<=r*r。

public class Main {
	public static void main(String args[]) {
		int a, b;
		int r = 1000;// 半徑長度
		int sum = 0;// 總個數
		for (int i = 0; i < 1000; i++) {
			for (int j = 0; j < 1000; j++) {
				a = i + 1;
				b = j + 1;
				if (a * a + b * b <= r * r)
					sum++;
			}
		}
		System.out.println(sum * 4);
	}
}

答案:3137548

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章