求高度
Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld
Description
有四个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这四个塔的高度为10m,塔以外无建筑物(高度为0)。
编写程序计算某点的高度。
Input
包含多组测试数据,每组测试数据占一行,每行包含2个数(double),分别表示某地的横纵坐标。
Output
每组测试数据输出占一行,输出给定地点的建筑物高度。
Sample Input
0 0 2 2
Sample Output
0 10
题目分析:
说白了就是要求该点是否在这四个圆的任意一个内。分别求该点到圆心的距离就好。
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
double a,b,m1,m2,f,l;
while(scanf("%lf %lf",&a,&b)!=EOF)
{
f=0;
m1=2;
m2=2;
l=(m1-a)*(m1-a)+(b-m2)*(b-m2);
if(l<=1)
f=1;
if(f==0)
{
m1=-2;
m2=2;
l=(m1-a)*(m1-a)+(b-m2)*(b-m2);
if(l<=1)
f=1;
}
if(f==0)
{
m1=-2;
m2=-2;
l=(m1-a)*(m1-a)+(b-m2)*(b-m2);
if(l<=1)
f=1;
}
if(f==0)
{
m1=2;
m2=-2;
l=(m1-a)*(m1-a)+(b-m2)*(b-m2);
if(l<=1)
f=1;
}
if(f==1)
printf("10\n");
else
printf("0\n");
}
return 0;
}