Dado un polígono de N lados, necesitamos encontrar el número total de triángulos formados al unir los vértices del polígono dado con exactamente dos lados comunes y ningún lado común.
Ejemplos:
Entrada: N = 6
Salida: 6 2
La siguiente imagen es de un triángulo que se forma dentro de un hexágono al unir los vértices como se muestra arriba.
El triángulo formado tiene dos lados (AB y BC) comunes con el de un polígono. De manera similar, BC y
CD pueden formar un triángulo. Con esto podemos decir que habrá un total de 6 triángulos posibles
teniendo dos lados comunes con el de un polígono. La segunda imagen de un hexágono,
se forma un triángulo sin lado común con el de un polígono.
Solo habrá 2 triángulos posibles, BFD y ACE.
El número de triángulos formados es 6 y 2 con dos lados comunes y sin lado común respectivamente.
Entrada: N = 7
Salida: 7 7
Acercarse :
- Para hacer que un triángulo tenga dos lados comunes con un polígono, tomaremos un lado cualquiera de un polígono de n lados, tomaremos un vértice del lado elegido y uniremos una arista adyacente al vértice del otro vértice.
- Atravesando cada vértice y uniendo una arista adyacente al vértice del otro vértice, habrá N número de triángulos que tienen dos lados en común.
- Ahora, para calcular el número de triángulos sin lado común resta el número total de triángulos con un lado común y el número total de triángulos con dos lados del número total de triángulos posibles en un polígono.
- Triángulos sin lado común = Triángulos totales ( n C 3 ) – triángulos comunes de un lado ( n * ( n – 4 ) – triángulos comunes de dos lados ( n ).
- Por lo tanto, el número de triángulos sin lado común con el polígono sería igual a n * ( n – 4 ) * ( n – 5 ) / 6.
Nota: Para calcular el número de triángulos que tienen un lado común con el de un polígono, haga clic aquí
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement // the above problem #include <bits/stdc++.h> using namespace std; // Function to find the number of triangles void findTriangles(int n) { int num = n; // print the number of triangles // having two side common cout << num << " "; // print the number of triangles // having no side common cout << num * (num - 4) * (num - 5) / 6; } // Driver code int main() { // initialize the number // of sides of a polygon int n; n = 6; findTriangles(n); return 0; }
Java
// Java program to implement // the above problem import java.io.*; class GFG { // Function to find the number of triangles static void findTriangles(int n) { int num = n; // print the number of triangles // having two side common System.out.print( num + " "); // print the number of triangles // having no side common System.out.print( num * (num - 4) * (num - 5) / 6); } // Driver code public static void main (String[] args) { // initialize the number // of sides of a polygon int n; n = 6; findTriangles(n); } } // This code is contributed by anuj_67..
Python3
# Python3 program to implement # the above problem # Function to find the number of triangles def findTriangles(n): num = n # print the number of triangles # having two side common print(num, end = " ") # print the number of triangles # having no side common print(num * (num - 4) * (num - 5) // 6) # Driver code # initialize the number # of sides of a polygon n = 6; findTriangles(n) # This code is contributed by Mohit Kumar
C#
// C# program to implement // the above problem using System; class GFG { // Function to find the number of triangles static void findTriangles(int n) { int num = n; // print the number of triangles // having two side common Console.Write( num + " "); // print the number of triangles // having no side common Console.WriteLine( num * (num - 4) * (num - 5) / 6); } // Driver code public static void Main () { // initialize the number // of sides of a polygon int n; n = 6; findTriangles(n); } } // This code is contributed by anuj_67..
Javascript
<script> // javascript program to implement // the above problem // Function to find the number of triangles function findTriangles(n) { var num = n; // print the number of triangles // having two side common document.write( num + " "); // print the number of triangles // having no side common document.write( num * (num - 4) * (num - 5) / 6); } // Driver code // initialize the number // of sides of a polygon var n; n = 6; findTriangles(n); // This code is contributed by 29AjayKumar </script>
6 2
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA