一道ACM的题,没看懂题目意思,请帮我大概解释一下

2024-12-18 06:39:58
推荐回答(2个)
回答1:

弗莱德考虑购买路易斯安那的土地来建造房子。在调查过程中,他得知路易斯安那州正以每年50平方英里的速度收缩,由于密西西比河的侵蚀。因为弗莱德希望在这所房子里度过余生,他需要知道自己的土地是否将会被侵蚀。
做了更多的研究,弗莱德了解到,失去的土地形成一个半圆。这个半圆形是一个以(0 , 0)为圆心的圆的一部分,x轴把圆一分为二。x轴的下方是在水中。这个半圆在第一年面积为0。(半圆以数字说明。)
输入格式
第一行输入将是一个正整数,表示多少数据集将包括在内(N)。
每下一个N线将包含弗莱德想要的土地的(x,y)笛卡尔坐标。是以英里计量的浮点数。坐标是非负的。(0 , 0)将不给予。
输出格式
对于每个数据集,一个输出线应出现。本线应采取的形式:
“属性N:此属性将开始侵蚀在Z年。”
其中的数据集(从1),并且是第一年(从1开始)此属性在半圆内,到Z年底,Z 必须是整数。
在最后一组数据集之后,应打印出“结束输出。”
注:无属性将出现在半圆上的边界上:它要么是内部或外部。这个问题会自动判断。你的回答必须完全匹配,包括大小写,标点符号和空格。这包括线末尾的部分。所有的位置以英里为单位给出。
样本输入
2
1.0 1.0
25.0 0.0
样例输出
属性1:这个属性将会在第1年开始被侵蚀。
属性2:这个属性将会在第20年开始被侵蚀。
结束输出。

回答2:

#include
#include
/*double ceil(double x); 功 能: 返回大于或者等于指定表达式的最小整数*/
int main()
{
int count;
double x,y;
scanf("%d",&count);
for(int i=0;i!=count;i++)
{
scanf("%lf %lf",&x,&y);
printf("Property %d: This property will begin eroding in year %d.\n",i+1,(int)ceil((x*x+y*y)*3.14/100));
}
printf("END OF OUTPUT.\n");
return 0;
}
//(x*x+y*y)*3.14/2是求点(x,y)到原点距离的半圆面积 然后再除50 取整 整理后公式就是 (x*x+y*y)*3.14/100)