随笔- 509  文章- 0  评论- 151  阅读- 22万 

2014-03-20 02:05

题目:给定笛卡尔二维平面上两条直线,判断它们是否相交。

解法:相交、重合、平行。

代码:

复制代码
 1 // 7.3 Given two lines on the Cartesian, determine if they would intersect.
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     // a * x + b * y + c = 0;
 8     // d * x + e * y + f = 0;
 9     int a, b, c, d, e, f;
10     bool suc;
11     
12     while (scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f) == 6) {
13         if ((a == 0 && b == 0) || (d == 0 && e == 0)) {
14             // invalid line
15             suc = false;
16         } else if (a * e == b * d) {
17             if (a * f == c *d) {
18                 // coincident
19                 suc = true;
20             } else {
21                 // parallel
22                 suc = false;
23             }
24         } else {
25             // intersect
26             suc = true;
27         }
28         if (suc) {
29             printf("Yes\n");
30         } else {
31             printf("No\n");
32         }
33     }
34     
35     return 0;
36 }
复制代码

 

 posted on   zhuli19901106  阅读(199)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示