Dado un triángulo ABC . Se dibujan H líneas horizontales desde el lado AB hasta AC (como se muestra en la fig.) y V líneas verticales desde el vértice A hasta el lado BC , la tarea es encontrar el número total. de triángulos formados.
Ejemplos:
Entrada: H = 2, V = 2
Salida: 18
Como vemos en la imagen de arriba, el total de triángulos formados es 18.
Entrada: H = 3, V = 4
Salida: 60
Enfoque: Como vemos en las imágenes a continuación, podemos derivar una fórmula general para el problema anterior:
- Si solo hay h líneas horizontales, entonces el total de triángulos es (h + 1) .
- Si solo hay v líneas verticales, entonces los triángulos totales son (v + 1) * (v + 2) / 2. .
- Entonces, los triángulos totales son Triángulos formados por líneas horizontales * Triángulos formados por líneas verticales, es decir (h + 1) * (( v + 1) * (v + 2) / 2) .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; #define LLI long long int // Function to return total triangles LLI totalTriangles(LLI h, LLI v) { // Only possible triangle is // the given triangle if (h == 0 && v == 0) return 1; // If only vertical lines are present if (h == 0) return ((v + 1) * (v + 2) / 2); // If only horizontal lines are present if (v == 0) return (h + 1); // Return total triangles LLI Total = (h + 1) * ((v + 1) * (v + 2) / 2); return Total; } // Driver code int main() { int h = 2, v = 2; cout << totalTriangles(h, v); return 0; }
Java
// Java implementation of the approach class GFG { // Function to return total triangles public static int totalTriangles(int h, int v) { // Only possible triangle is // the given triangle if (h == 0 && v == 0) return 1; // If only vertical lines are present if (h == 0) return ((v + 1) * (v + 2) / 2); // If only horizontal lines are present if (v == 0) return (h + 1); // Return total triangles int total = (h + 1) * ((v + 1) * (v + 2) / 2); return total; } // Driver code public static void main(String[] args) { int h = 2, v = 2; System.out.print(totalTriangles(h, v)); } }
C#
// C# implementation of the approach using System; class GFG { // Function to return total triangles public static int totalTriangles(int h, int v) { // Only possible triangle is // the given triangle if (h == 0 && v == 0) return 1; // If only vertical lines are present if (h == 0) return ((v + 1) * (v + 2) / 2); // If only horizontal lines are present if (v == 0) return (h + 1); // Return total triangles int total = (h + 1) * ((v + 1) * (v + 2) / 2); return total; } // Driver code public static void Main() { int h = 2, v = 2; Console.Write(totalTriangles(h, v)); } } // This code is contributed by Ryuga
Python3
# Python3 implementation of the approach # Function to return total triangles def totalTriangles(h, v): # Only possible triangle is # the given triangle if (h == 0 and v == 0): return 1 # If only vertical lines are present if (h == 0): return ((v + 1) * (v + 2) / 2) # If only horizontal lines are present if (v == 0): return (h + 1) # Return total triangles total = (h + 1) * ((v + 1) * (v + 2) / 2) return total # Driver code h = 2 v = 2 print(int(totalTriangles(h, v)))
PHP
<?php // PHP implementation of the above approach // Function to return total triangles function totalTriangles($h, $v) { // Only possible triangle is // the given triangle if ($h == 0 && $v == 0) return 1; // If only vertical lines are present if ($h == 0) return (($v + 1) * ($v + 2) / 2); // If only horizontal lines are present if ($v == 0) return ($h + 1); // Return total triangles $Total = ($h + 1) * (($v + 1) * ($v + 2) / 2); return $Total; } // Driver code $h = 2; $v = 2; echo totalTriangles($h, $v); // This code is contributed by Arnab Kundu ?>
Javascript
<script> // javascript implementation of the approach // Function to return total triangles function totalTriangles(h , v) { // Only possible triangle is // the given triangle if (h == 0 && v == 0) return 1; // If only vertical lines are present if (h == 0) return ((v + 1) * (v + 2) / 2); // If only horizontal lines are present if (v == 0) return (h + 1); // Return total triangles var total = (h + 1) * ((v + 1) * (v + 2) / 2); return total; } // Driver code var h = 2, v = 2; document.write(totalTriangles(h, v)); // This code contributed by shikhasingrajput </script>
18
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Chandan_Agrawal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA