目錄
- 🍋題目描述
- 🍋思路
- 🍋源代碼
- 🍋其他真題
🍋題目描述
如圖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);
}
}