Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Số giao điểm lớn nhất của N đường thẳng trong C++


Cho N đường thẳng. Tìm số giao điểm lớn nhất có thể có (giả sử không có 2 đường song song, không có 3 đường đồng quy).

Công thức

Mỗi cặp đường thẳng cắt nhau tại 1 điểm → C(N,2) = N*(N-1)/2.

Ví dụ triển khai (C++)

#include <bits/stdc++.h>
using namespace std;
#define ll long long

ll countMaxIntersect(ll n) {
    return n * (n - 1) / 2;
}

int main() {
    ll n = 8;
    cout << countMaxIntersect(n) << endl;
    return 0;
}

Đầu ra

28