Heim > Artikel > Backend-Entwicklung > Ermitteln Sie in C++ die Anzahl der Dreiecke, die durch eine Menge von Punkten auf drei Geraden gebildet werden
Jetzt sind in den drei Zeilen mehrere Punkte vorhanden. Wir müssen beispielsweise herausfinden, wie viele Dreiecke diese Punkte bilden können Frage.
Methode zur Lösungsfindung
C++-Code für die obige Methode
Beispiel
Input: m = 3, n = 4, k = 5 Output: 205 Input: m = 2, n = 2, k = 1 Output: 10
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; long long fact(long long n) { if(n <= 1) return 1; return ((n % MOD) * (fact(n-1) % MOD)) % MOD; } long long comb(int n, int r) { return (((fact(n)) % MOD) / ((fact(r) % MOD) * (fact(n-r) % MOD)) % MOD); } int main() { int n = 3; int m = 4; int r = 5; long long linen = comb(n, 3); // the combination of n with 3. long long linem = comb(m, 3); // the combination of m with 3. long long liner = comb(r, 3); //the combination of r with 3. long long answer = comb(n + m + r, 3); // all possible comb of n, m , r with 3. answer -= (linen + linem + liner); cout << answer << "\n"; return 0; }
Fazit
Das obige ist der detaillierte Inhalt vonErmitteln Sie in C++ die Anzahl der Dreiecke, die durch eine Menge von Punkten auf drei Geraden gebildet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!