In diesem Artikel erklären wir, wie man in C++ die Anzahl möglicher Paare ermittelt, die die Hypotenuse und die Fläche eines rechtwinkligen Dreiecks bilden.
Wir müssen die Anzahl aller möglichen Paare aus Hypotenuse und Fläche (H, A) bestimmen, die ein rechtwinkliges Dreieck bilden, wobei H die Hypotenuse und A die Fläche ist.
In diesem Beispiel -
durch ’ s zu
‘s Verwendung zu
-- / 2
oder
4 * A
2= ( x * y )
2… … (1 )Wir wissen auchx
2+ y
2=H2… (2)Löse (1) & (2)4 * A
2= H
2- x2)Lösen Sie die quadratische Gleichung in x2 und lassen Sie D (Diskriminante) >= 0 (x existiert)Wir erhalten,H2 >= 4 * A(Bedingung für rechtwinkliges Dreieck zu existieren)
Hier ist das Beispiel-
Input : array H[ ] = { 3, 6, 8 } : A[ ] = { 2, 31, 12 } Output : 4 Explanation : possible pairs of Hypotenuse and Area ( H, A ) are ( 3, 2 ), ( 6, 2 ), ( 8, 2 ) and ( 8, 12 ). Input : array H[ ] = { 2, 5, 9 } : A[ ] = { 3, 11, 7 } Output : 4 Explanation : possible pairs of Hypotenuse and Area ( H, A ) are possible pairs of Hypotenuse and Area ( H, A ) are ( 5, 3 ), ( 9, 3 ), ( 9, 11 ) and ( 9, 7 ).
LösungsmethodeJetzt werden wir zwei verschiedene Methoden verwenden, um die gegebene Aufgabe auszuführen –
Brute-Force-Methode
erfüllen, und zählen Sie die Anzahl jedes Kombinationspaars, das diese Bedingung erfüllt.
#includeusing namespace std; int main(){ int H[ ] = { 2,5,9}; // array of hypotenuse int s1 = sizeof(H)/sizeof(H[0]); int A[ ] = { 3, 11, 7};// array of area int s2 = sizeof(A)/sizeof(A[0]); int count = 0;// initialising count to 0 // finding all possible pairs for (int i = 0; i < s1; i++) { for (int j = 0; j < s2; j++) { // checking whether current pair satisfies the condition if (H[i] * H[i] >= 4 * A[j]){ count++; } } } cout << "Number of possible pairs of ( H, A ): " << count ; return 0; }
Ausgabe
Number of possible pairs of ( H, A ): 4
2
> 4 * ABeispiel
#includeusing namespace std; int main (){ int H[] = { 2, 5, 9 }; int s1 = sizeof (H) / sizeof (H[0]); int A[] = { 3, 11, 7 }; int s2 = sizeof (A) / sizeof (A[0]); int count = 0; // Sorting both the arrays sort (H, H + s1); sort (A, A + s2); int temp = -1; for (int i = 0; i < s1; i++){ // Applying binary search for // every Hypotenuse Length int flag1 = 0; int flag2 = s2 - 1; while (flag1 <= flag2){ int mid = flag1 + (flag2 - flag1) / 2; if ((H[i] * H[i]) >= (4 * A[mid])){ temp = mid; flag1 = mid + 1; } else{ flag2 = mid - 1; } } if (temp != -1){// Check if we get any possible area count += temp + 1; } } cout << "Number of possible pairs of (H, A): " << count; return 0; }
Number of possible pairs of ( H, A ): 4
2
) und einen effizienten Ansatz mit einer Zeitkomplexität von O(s1 log(s2)) angewendet. Ich hoffe, dieser Artikel ist hilfreich für Sie.Das obige ist der detaillierte Inhalt vonErmitteln Sie mithilfe der C++-Programmierung die Anzahl möglicher Hypotenusen- und Flächenpaare eines rechtwinkligen Dreiecks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!