首页 > 其他分享 >Problem E: 判断两个圆之间的关系

Problem E: 判断两个圆之间的关系

时间:2023-05-25 17:08:05浏览次数:42  
标签:关系 判断 return center Point int double Problem Circle


Home

Web Board

ProblemSet

Standing

Status

Statistics


Problem E: 判断两个圆之间的关系


Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 1107  

Solved: 925

[Submit][Status][Web Board]


Description



定义Point类,包括double类型的两个属性,分别表示二维空间中一个点的横纵坐标;定义其必要的构造函数和拷贝构造函数。

定义Circle类,包括Point类的对象和一个double类型的数据作为其属性,分别表示圆心坐标及半径;定义其必要的构造函数、拷贝构造函数。定义Circle类的成员函数:

int JudgeRelation(const Circle& another)

用于判断当前圆与another之间的位置关系。该函数的返回值根据以下规则确定:当两个圆外离时返回1;当两个圆内含时返回2;当两个圆外切时返回3; 当两个圆内且时返回4;当两个圆相交时返回5。



Input



第1行N>0表示测试用例个数。

每个测试用例包括2行,第1行是第1个圆的位置及半径;第2行是第2个圆的位置和半径。



Output



每个测试用例对应一行输出,输出两个圆之间的位置关系。见样例。



Sample Input



50 0 1020 20 10 0 101 1 40 0 100 20 100 0 100 5 50 0 1015 0 10



Sample Output



OutsideInsideExternally tangentInternally tangentIntersection



HINT



外离与内含均指两个圆没有任何交点,但内含是指一个圆完全包含在另一个的内部,否则便是外离。





Append Code



append.cc,


[ Submit][Status][Web Board]


한국어<  中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin


#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
 
class Point{
   double x,y;
   public:
       double getx() {return x;}
       double gety() {return y;}
       void setx(double a) { x = a;}
       void sety(double a) { y = a;}
       Point(double a,double b):x(a),y(b){}
       ~Point(){}
};
class Circle{
   private :
       Point center;
       double radius;
   public :
       Circle(Point a,double b):center(a),radius(b){}
       int JudgeRelation(Circle &a)
       {
          double dis1 = center.getx() - a.center.getx();
          double dis2 = center.gety() - a.center.gety();
          double dis = sqrt(dis1*dis1+dis2*dis2);
          if (radius+a.radius<dis) return 1;
          if (radius+a.radius == dis ) return 3;
          if (abs(radius-a.radius) == dis) return 4;
          if (abs(radius-a.radius)<dis && abs(radius+a.radius)>dis) return 5;
          return 2;
       }
       Point & getpoint()
       {
          return center;
       }
};
int main()
{
    int cases;
    double x, y, r;
    cin>>cases;
    for (int i = 0; i < cases; i++)
    {
        cin>>x>>y>>r;
        Point p1(x,y);
        Circle c1(p1, r);
        cin>>x>>y>>r;
        Point p2(x, y);
        Circle c2(p2, r);
        switch(c1.JudgeRelation(c2))
        {
        case 1:
            cout<<"Outside"<<endl;
            break;
        case 2:
            cout<<"Inside"<<endl;
            break;
        case 3:
            cout<<"Externally tangent"<<endl;
            break;
        case 4:
            cout<<"Internally tangent"<<endl;
            break;
        case 5:
            cout<<"Intersection"<<endl;
        }
    }
}




标签:关系,判断,return,center,Point,int,double,Problem,Circle
From: https://blog.51cto.com/u_16129621/6350043

相关文章

  • Problem B: 时间类的成员读写
    HomeWebBoardProblemSetStandingStatusStatisticsProblemB:时间类的成员读写TimeLimit:4Sec  MemoryLimit:128MBSubmit:3080  Solved:2668[Submit][Status][WebBoard]Description封装一个时间类Time,用于时间处理的相关功能,支持以下操......
  • Problem F: 平面上的点和线——Point类、Line类 (VI)
    HomeWebBoardProblemSetStandingStatusStatisticsProblemF:平面上的点和线——Point类、Line类(VI)TimeLimit:1Sec  MemoryLimit:128MBSubmit:4350  Solved:2006[Submit][Status][WebBoard]Description在数学上,平面直角坐标系上的点......
  • Problem E: 编写函数:Swap (I) (Append Code)
    ProblemE:编写函数:Swap(I)(AppendCode)TimeLimit:1Sec  MemoryLimit:16MBSubmit:7937  Solved:5693[Submit][Status][WebBoard]Description编写用来交换两个数的函数,使得“AppendCode”中的main()函数能正确运行。---------------------------......
  • 深入理解数据库中的表、用户、表空间和模式的关系
    在数据库管理系统中,如Oracle,对关键概念,包括表、用户、表空间和模式之间的关系应有较深理解。这些概念对于正确管理和保护数据库中的数据至关重要。在本文中,我们将重点整理和澄清这些概念,并解释它们之间的关系。一明确每个概念的含义。表:表是数据库中存储数据的基本结构。它由列和......
  • 计算并且四舍五入 判断是否数字类型
    StringuserateNow="0";//当前使用率if(ObjectUtil.isNotNull(numSpaceS)&&ObjectUtil.isNotNull(numSpaceU)&&numSpaceS!=0&&numSpaceU!=0){BigDecimaluserateNowSize=newBigDecimal((double)numSpaceU/(double)numSpaceS*100)......
  • vue---属性绑定:多个判断条件/class/style
    我们在做VUE项目开发的时候,经常会遇到需要绑定多个判断条件,多个class,多个style的情况,下面就整理一下:一、绑定多个判断条件二、绑定多个class1、绑定一个类名<div:class="{'active':isActive}"></div>或三元表达式:<div:class="isActive?'active':''"><......
  • The 3n + 1 problem
    ProblemsinComputerScienceareoftenclassifiedasbelongingtoacertainclassofproblems(e.g.,NP,Unsolvable,Recursive).Inthisproblemyouwillbeanalyzingapropertyofanalgorithmwhoseclassificationisnotknownforallpossibleinputs. Co......
  • integer和int之间的关系
    在计算机编程中,Integer和int都是表示整数类型的变量类型,它们之间是有关系的,但用法和细节有所不同。int是Java语言中表示整数类型的基本数据类型之一,它可以存储32位(4个字节)的有符号整数,其范围大约为-2147483648到2147483647。int类型的变量通常用于声明和操作整数数值,例如进行加减......
  • 你的财富和你的认知之间的关系
    今天,我在朋友圈get到一段话,刚刚开始看进去觉得真是鸡汤,没太在意。但朋友却开题第一句有个提示:请读20遍以上,直到弄懂为止:然后,我就把他多看了几眼,看着看着深觉有趣,所以记录下来:你永远赚不到超出你认知范围外的钱除非你靠运气但是靠运气赚到的钱最后往往又会靠实力亏掉......
  • 每日一题 力扣 1377 https://leetcode.cn/problems/frog-position-after-t-seconds/
    力扣1377https://leetcode.cn/problems/frog-position-after-t-seconds/这道题目用dp去做,构建邻接矩阵,做的时候需要注意题目条件,如果青蛙跳不动了,这个概率就保持不变了一般跳青蛙,很容易想到dp核心代码如下publicdoublefrogPosition(ipublicdoublefrogPosition(intn,......