zoukankan      html  css  js  c++  java
  • careercup-数学与概率

    7.3 给定直角坐标系上的两条线,确定这两条线会不会相交。

    解法:

    此题有很多不确定的地方:两条线的格式是什么?两条线实为同一条怎么处理?这些含糊不清的地方最好跟面试官讨论一下。

    下面将做出以下假设:

    若两条线是相同的(斜率和y轴截距相等),则认为这两条线相交;

    两条线若不平行则必相交。因此,要检查两条线相交与否,我们只需检查两者的斜率是否相同,或是否为同一条。

    实现代码:

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    class line{
    public:
        static  double epsilon;
        double slope;
        double yintercept;
    
        line(double s,double y):slope(s),yintercept(y){}
        bool intersect(line line2)
        {
            //满足两个条件一定相交,第一是斜率不相等,第二是斜率相等但是截距也相等
            return abs(slope-line2.slope)>epsilon||abs(yintercept-line2.yintercept)<epsilon;
    
        }
    };
    double line::epsilon=0.000001;
    int main()
    {
        line line1(1,2);
        line line2(1,2);
        cout<<line1.intersect(line2)<<endl;
    }
  • 相关阅读:
    57. Insert Interval
    287. Find the Duplicate Number
    52. N-Queens II
    51. N-Queens
    151. Reverse Words in a String
    29. Divide Two Integers
    [POJ2104]K-th Number
    [JSOI2008]最大数
    [BZOJ3673&3674]可持久化并查集&加强版
    C++ STL rope介绍----可持久化平衡树
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4148891.html
Copyright © 2011-2022 走看看