2014-03-20 02:05
题目:给定笛卡尔二维平面上两条直线,判断它们是否相交。
解法:相交、重合、平行。
代码:
// 7.3 Given two lines on the Cartesian, determine if they would intersect.
#include <cstdio>
using namespace std; int main()
{
// a * x + b * y + c = 0;
// d * x + e * y + f = 0;
int a, b, c, d, e, f;
bool suc; while (scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f) == ) {
if ((a == && b == ) || (d == && e == )) {
// invalid line
suc = false;
} else if (a * e == b * d) {
if (a * f == c *d) {
// coincident
suc = true;
} else {
// parallel
suc = false;
}
} else {
// intersect
suc = true;
}
if (suc) {
printf("Yes\n");
} else {
printf("No\n");
}
} return ;
}