Algoritmos notables: Triángulo de asteriscos
Algoritmo muy usado en el ámbito académico para dibujar triángulos con asteriscos 🧑‍💻👌

Aprende a resolver un algoritmo presente en muchas currículas de universidad, de primeros años de ingeniería de sistemas, informática y ciencias de la computación! 😉

Enunciado

Crear un método al que se le ingrese el número de líneas y dibuje un triángulo hecho con asteriscos.

Este algoritmo comúnmente puede pedirse de dos formas:

  • Triángulo alineado a la izquierda, es decir tendría la forma de un triángulo rectángulo.

Por ejemplo, si se ingresa un parámetro 6 nos retorna:

  • Triángulo centrado, es decir se asemejaría a uno equilátero.

Por ejemplo, si se ingresa un parámetro 5 nos retornaría:

Hey inténtalo tú primero, no saltes directo a la solución crack! 🤔👀

Algoritmo

Para resolver este ejercicio hacer lo siguiente:

  • Iterar por cada línea que nos piden para el triángulo.
  • En cada iteración vamos a tener que iterar nuevamente, es decir vamos a crear una iteración anidada para calcular los espacios y los asteriscos, según sea el caso que piden triángulo centrado o alineado a la izquierda. (el alineado a la izquierda no necesitará espacios)
  • Ir almacenando los caracteres de espacios (para el caso del triángulo centrado) y de asteriscos e ir acumulándolos y concatenarlos.
  • Aprovechar la iteración principal para ir imprimiendo en pantalla los asteriscos.

Aprovecho la ocasión para recordarte que aprender estructuras de datos es muy importante. En esta entrada te hablo de las estructuras de datos en .NET 😉

Código

        public void DrawCenterTriangle(int lines)
        {
			string response;
			for (int i = 0; i < lines; i++)
			{
				response = "";
				int quantity = 2 * i + 1;
				int spaces = lines - i - 1;
				for (int j = spaces; j >= 0; j--)
				{
					response += " ";
				}
				for (int k = 1; k <= quantity; k++)
				{
					response += "*";
				}
				Console.WriteLine(response);
			}
		}

		public void DrawLeftTriangle(int lines)
		{
			string response;
			for (int i = 1; i <= lines; i++)
			{
				response = "";
				for (int j = 1; j <= i; j++)
				{
					response += "*";
				}
				Console.WriteLine(response);
			}
		}

Recuerda que esta entrada es de la serie de artículos Algoritmos notables, los cuales los subo a este repo, puedes visitarlo y descubrir más algoritmos 😉

Así como en el tenis, la práctica te hace de élite, en el código la práctica te hará un pro. Foto de Moises Alex en Unsplash

Si te ha fascinado esta entrada compártela mi crack 🫡

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *