c# Как поместить треугольники в ряд горизонтально?

Console.WriteLine("Enter the number of triangles: ");
        int n = int.Parse(Console.ReadLine());
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n + 1; j++)
            {
                for (int k = 0; k < j; k++)
                    Console.Write("+");
                Console.WriteLine();
            }
        }

Программа выводит треугольники в ряд вертикально, а нужно горизонтально, что нужно для этого сделать? введите сюда описание изображения


Ответы (1 шт):

Автор решения: Андрей NOP
var n = 5;
var sb = new StringBuilder();
for (var r = 1; r <= n; ++r)
{
    for (var c = 0; c < n; ++c)
    {
        sb.Append('+', r)
            .Append(' ', n - r)
            .Append(' ');
    }
    sb.AppendLine();
}
Console.Write(sb);

Идем построчно, добавляем части треугольника по слоям: сначала верхний слой, где у всех треугольников по одному значащему символу, затем — второй и т. д. до n.

Здесь:

  • r — номер строки;
  • c — номер треугольника, как видно по коду, мы внутри каждой строки итерируем по треугольникам и добавляем строчки для каждого из них;
  • .Append('+', r) — добавляем r плюсиков, на первой строке их один, на второй — 2 и т. д.;
  • .Append(' ', n - r) — "забиваем" ширину пробелами, так чтобы все треугольники во всех слоях были одинаковой ширины;
  • .Append(' ') — добавляем отступ между треугольниками по горизонтали;
  • .AppendLine() — добавляем перевод строки.

введите сюда описание изображения

→ Ссылка