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()— добавляем перевод строки.
