家的坐标(X,Y)到侵蚀中心(0,0)的距离就是侵蚀半径R
那么Area = 1/2*PI*R 就是侵蚀面积
而侵蚀速度为每年50
那么侵蚀到Fred 家需要 year = Area/50 年
PS:因为要求从第一年开始计算,最后一年不够一年按一年计算,那么year+1取整就可以了。
#include<stdio.h>
const double PI=3.141592654;
int main()
{
freopen("input.txt","r",stdin);
int n;
scanf("%d",&n);
int i=1;
for(i=1;i<=n;i++)
{
double x,y;
scanf("%lf%lf",&x,&y);
double Area;
Area=0.5*PI*(x*x+y*y);
int year;
year=(int)(Area/50.0+1.0);
printf("Property %d: This property will begin eroding in year %d.",i,year);
printf("\n");
}
printf("END OF OUTPUT.");
return 0;
}
PS:不知道为什么这段代码提交到poj时,语言如何选择C的话就过不了,C++才能过,我这不就是C代码么,错误都是说代码中的标识符没有声明,
希望有前辈路过能指导一下。
错误截图(C语言提交)
请教之后明白了一点,如果变量声明在循环之外就可以。
#include<stdio.h>
const double PI=3.141592654;
int main()
{
freopen("input.txt","r",stdin);
int n;
int i=1;
double Area;
int year;
double x,y;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%lf%lf",&x,&y);
Area=0.5*PI*(x*x+y*y);
year=(int)(Area/50.0+1.0);
printf("Property %d: This property will begin eroding in year %d.",i,year);
printf("\n");
}
printf("END OF OUTPUT.");
return 0;
}