求高度


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;
}