poj 1005 I Think I Need a Houseboat

来源:互联网 发布:网络上有重名怎么办 编辑:程序博客网 时间:2024/06/16 15:08

有一个水题,题目读懂就可以了,千万注意是“半圆”!!!


题目大意:已知一个圆心为(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;}


原创粉丝点击