有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的建筑高度为零)

一、解题思路:

通过坐标内一点到圆心的距离公式,求得该点到这四个圆的圆心的距离,如果这四个距离都大于1,那么说明该点在这四个塔的其中一个上,建筑高度为10,反之建筑高度为0.

二、代码实现:

#include<stdio.h>
#include<math.h>

int main()
{
	double x,y;
	scanf("%lf%lf",&x,&y);
	double d1,d2,d3,d4;
	double a=2.0,b=-2.0;
	int height;
	d1=sqrt((x-a)*(x-a)+(y-a)*(y-a));
	d2=sqrt((x-b)*(x-b)+(y-b)*(y-b));
	d3=sqrt((x-a)*(x-a)+(y-b)*(y-b));
	d4=sqrt((x-b)*(x-b)+(y-a)*(y-a));
	if(d1>1&&d2>1&&d3>1&&d4>1)
	{
		height=0;
	}
	else
	{
		height=10;
	}
	printf("该点的建筑高度为:%d\n",height);
	
	return 0;
}


版权声明:本文为y1470199281原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。