题目相关信息
描述
在做了更多的研究之后,弗雷德了解到正在失去的土地形成了一个半圆形。这个半圆是以 (0,0) 为中心的圆的一部分,将圆平分的线是 X 轴。X 轴下方的位置在水中。半圆在第 1 年开始时的面积为 0。
输入
输入的第一行将是一个正整数,表示将包含多少个数据集 (N)。接下来的 N 条线将包含 Fred 正在考虑的土地的 X 和 Y 笛卡尔坐标。这些将是以英里为单位的浮点数。Y 坐标将为非负数。(0,0) 将不予给出。
输出
对于每个数据集,应显示一行输出。此行应采用以下形式:“属性 N:此属性将在 Z 年开始侵蚀。其中 N 是数据集(从 1 开始计数),Z 是第一年(从 1 开始),此属性将在半圆内 在年底 Z 内。 Z 必须是整数。在最后一个数据集之后,这应该打印出“输出结束”。
示例输入
2 1.0 1.0 25.0 0.0
示例输出
Property 1: This property will begin eroding in year 1. Property 2: This property will begin eroding in year 20. END OF OUTPUT.
提示
1.No 属性将正好出现在半圆边界上:它要么位于内部,要么位于外部。
2.本题将自动判断。您的答案必须完全匹配,包括大小写、标点符号和空格。这包括行尾的句点。
3.所有地点均以英里为单位。
解题思路
初始化
定义整数(i, j, n, year)和浮点数(x, y, r, area, pi)变量。
i :用来追踪当前处理的“属性”的编号。
j :用作循环计数器。
n :要处理的“属性”的总数。
x 和 y 是每个“属性”的坐标。
r :存储距离的平方。
area :存储面积值。
pi 是一个近似的圆周率值。
输入
首先读取一个整数n,表示要处理的“属性”的数量。然后,对于每个“属性”,读取两个浮点数x和y。使用x和y的平方和来计算r,此处r是半径的平方。接着,使用r和pi来计算“面积”area,但这里的“面积”计算并不符合常规的几何定义,因为它只是r的一半乘以pi。
预测侵蚀开始年份
将“面积”area除以50.0,然后使用ceil函数向上取整得到year。
输出
对于每个“属性”,输出其编号和预测的侵蚀开始年份。最后,输出“END OF OUTPUT.”以表示输出结束。
代码
#include<stdio.h>
#include<math.h>
int main()
{
int i=1,j,n;
int year;
double x,y,r,area,pi =3.14;
scanf("%d", &n);
for(j=0;j<n;j++)
{
scanf("%lf %lf", &x, &y);
r = x * x + y * y;
area = pi * r/2.0;
year = (int)ceil(area/50.0);
printf("Property %d:",i++);
printf("This property will begin eroding in year %d.\n", year);
}
printf("END OF OUTPUT.\n");
return 0;
}
代码参考自:http://t.csdnimg.cn/mT72w
这次就到这里了,与大家共勉。