《Cracking the Coding Interview》-제7장: 수학과 확률론-제목3

5171 단어 interview
2014-03-20 02:05
제목: 피리칼의 2차원 평면에 두 직선을 주어 교차하는지 아닌지를 판단한다.
해법: 교차, 중합, 평행.
코드:
 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
"); 30 } else { 31 printf("No
"); 32 } 33 } 34 35 return 0; 36 }

좋은 웹페이지 즐겨찾기