Dado un número N que representa el último término del Patrón Triángulo. La tarea es imprimir el patrón de triángulos del 1 al N, de modo que cada fila esté completa.
El patrón de triángulo se da como:
1 2 3 4 5 6 7 8 9 10 . .
Ejemplos:
Input: N = 3 Output: 1 2 3 Input: N = 7 Output: 1 2 3 4 5 6 7 will not be printed as it would result in an incomplete row
Acercarse:
- Encuentre el número de filas completas del último término dado N.
- Como:
Para Max Height = 1, el último término sería 1
Para Max Height = 2, el último término sería 3
Para Max Height = 3, el último término sería 6 - Así que el último término forma un patrón: 1, 3, 6, 10, 15,…
- Por tanto, el n-ésimo término de la serie 1, 3, 6, 10, 15,…
A(n) = 1 + 2 + 3 + 4… + (n – 1) + n
= n(n + 1) / 2
es decir, A(n) es la suma de los primeros n números naturales. - así que en
- Como:
A(n) = n(n + 1) / 2 A(n) represents the last term (as per our problem), and n represents the max height of the Triangle
- Por lo tanto, esto puede verse como:
Last term = height (height + 1) / 2
- Por lo tanto,
height = (-1 + sqrt(1 + 8*lastTerm)) / 2
- Después de encontrar la altura máxima, el patrón de triángulo se puede imprimir fácilmente.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code for printing the // Triangle Pattern using last term N #include <bits/stdc++.h> using namespace std; // Function to demonstrate printing pattern void triangle(int n) { // number of spaces int k = 2 * n - 2; // character to be printed int ch = 1; // outer loop to handle number of rows // n in this case for (int i = 0; i < n; i++) { // inner loop to handle number spaces // values changing acc. to requirement for (int j = 0; j < k; j++) cout << " "; // decrementing k after each loop k = k - 1; // inner loop to handle number of columns // values changing acc. to outer loop for (int j = 0; j <= i; j++) { // printing stars cout << ch++ << " "; } // ending line after each row cout << endl; } } // Function to find the max height // or the number of lines // in the triangle pattern int maxHeight(int n) { return (((int)sqrt(1 + 8.0 * n)) - 1) / 2; } // Driver Function int main() { int N = 9; triangle(maxHeight(N)); return 0; }
Java
// Java code for printing the // Triangle Pattern using last term N import java.util.*; class GFG { // Function to demonstrate printing pattern static void triangle(int n) { // number of spaces int k = 2 * n - 2; // character to be printed int ch = 1; // outer loop to handle number of rows // n in this case for (int i = 0; i < n; i++) { // inner loop to handle number spaces // values changing acc. to requirement for (int j = 0; j < k; j++) System.out.print(" "); // decrementing k after each loop k = k - 1; // inner loop to handle number of columns // values changing acc. to outer loop for (int j = 0; j <= i; j++) { // printing stars System.out.print(ch++ + " "); } // ending line after each row System.out.println(); } } // Function to find the max height // or the number of lines // in the triangle pattern static int maxHeight(int n) { return (((int)Math.sqrt(1 + 8.0 * n)) - 1) / 2; } // Driver Code public static void main(String[] args) { int N = 9; triangle(maxHeight(N)); } } // This code is contributed by PrinciRaj1992
Python3
# Python3 code for printing the # Triangle Pattern using last term N from math import sqrt # Function to demonstrate printing pattern def triangle(n) : # number of spaces k = 2 * n - 2; # character to be printed ch = 1; # outer loop to handle number of rows # n in this case for i in range(n) : # inner loop to handle number spaces # values changing acc. to requirement for j in range(k) : print(" ", end = ""); # decrementing k after each loop k = k - 1; # inner loop to handle number of columns # values changing acc. to outer loop for j in range(i + 1) : # printing stars print(ch, end = " "); ch += 1; # ending line after each row print() # Function to find the max height # or the number of lines # in the triangle pattern def maxHeight(n) : ans = (sqrt(1 + 8.0 * n) - 1) // 2; return int(ans); # Driver Code if __name__ == "__main__" : N = 9; triangle(maxHeight(N)); # This code is contributed by AnkitRai01
C#
// C# code for printing the // Triangle Pattern using last term N using System; class GFG { // Function to demonstrate printing pattern static void triangle(int n) { // number of spaces int k = 2 * n - 2; // character to be printed int ch = 1; // outer loop to handle number of rows // n in this case for (int i = 0; i < n; i++) { // inner loop to handle number spaces // values changing acc. to requirement for (int j = 0; j < k; j++) Console.Write(" "); // decrementing k after each loop k = k - 1; // inner loop to handle number of columns // values changing acc. to outer loop for (int j = 0; j <= i; j++) { // printing stars Console.Write(ch++ + " "); } // ending line after each row Console.WriteLine(); } } // Function to find the max height // or the number of lines // in the triangle pattern static int maxHeight(int n) { return (((int)Math.Sqrt(1 + 8.0 * n)) - 1) / 2; } // Driver Code public static void Main(String[] args) { int N = 9; triangle(maxHeight(N)); } } // This code is contributed by Princi Singh
Javascript
<script> // Javascript code for printing the // Triangle Pattern using last term N // Function to demonstrate printing pattern function triangle(n) { // number of spaces var k = 2 * n - 2; // character to be printed var ch = 1; // outer loop to handle number of rows // n in this case for (var i = 0; i < n; i++) { // inner loop to handle number spaces // values changing acc. to requirement for (var j = 0; j < k; j++) document.write(" "); // decrementing k after each loop k = k - 1; // inner loop to handle number of columns // values changing acc. to outer loop for (var j = 0; j <= i; j++) { // printing stars document.write(ch++ + " "); } // ending line after each row document.write("<br>"); } } // Function to find the max height // or the number of lines // in the triangle pattern function maxHeight(n) { return parseInt(((parseInt(Math.sqrt(1 + 8.0 * n))) - 1) / 2); } // Driver Function var N = 9; triangle(maxHeight(N)); // This code is contributed by noob2000. </script>
Producción:
1 2 3 4 5 6
Complejidad temporal: O(n 2 )
Espacio Auxiliar: O(1)