poj 1005 I Think I Need a Houseboat
有一個水題,題目讀懂就可以了,千萬注意是“半圓”!!!
題目大意:已知一個圓心為(0,0),半徑隨時間增長的位於X軸上方的半圓,初始麵積為0,每年的麵積增加50,給出一個坐標,求該坐標在第幾年被該半圓覆蓋。
代碼:
#include <stdio.h> int main() { int n; scanf("%d",&n); int i; double x,y; int year; for(i=1;i<=n;i++) { scanf("%lf%lf",&x,&y); //如果以(x,y)為半徑的圓麵積小於水域麵積,就被淹沒了,這樣就不用求水域半徑了 year=(int)((x*x+y*y)*3.1415926/100+1); //根據坐標計算年份 printf("Property %d: This property will begin eroding in year %d.\n",i,year); } printf("END OF OUTPUT.\n"); return 0; }
這段代碼寫的繁瑣點,不過思路更清晰
#include <stdio.h> int main() { int n; scanf("%d",&n); int i; double x,y; int year; int area; double s; for(i=1;i<=n;i++) { scanf("%lf%lf",&x,&y); //如果以(x,y)為半徑的圓麵積小於水域麵積,就被淹沒了,這樣就不用求水域半徑了 s=3.1415926*(x*x+y*y)/2; area=0; for(year=1; ;year++) { area+=50; if(s<area) break; } printf("Property %d: This property will begin eroding in year %d.\n",i,year); } printf("END OF OUTPUT.\n"); return 0; }
最後更新:2017-04-03 14:53:43