#c_sharp #алгоритм #консоль
Нужно реализовать вот что:
Написал код:
class Program
{
static void Main(string[] args)
{
AnotherTriangle ob = new AnotherTriangle();
ob.CreateTriangle();
Console.ReadLine();
}
}
class AnotherTriangle
{
int n;
string result = "*";
public void CreateTriangle()
{
flag1:
Console.Write("Введите желаемую количество треугольников: ");
n = int.Parse(Console.ReadLine());
Console.WriteLine();
if (n <= 0)
{
Console.WriteLine("Неправильный ввод данных\n"); goto flag1;
}
string s = "*".PadLeft(n);
for (int i = 0; i < n; i++)
{
Console.WriteLine(s);
s = s.Substring(1) + "**";
for (int j = 0; j < n; j++)
{
Console.WriteLine(s);
}
}
}
}
В итоге получилась башня, но никак не равнобедренные треугольники.
Прошу помочь или навести на дельную мысль. Причём нужно, чтобы пользователь мог вводить
произвольное количество треугольников.
Ответы
Ответ 1
Так как я уже ответил на Ваш вопрос здесь, копирую сюда ответ: Console.WriteLine("Введите желаемое количество треугольников: "); int n = int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { for (int j = 0; j < i; j++) { string branch = new String('*', j); Console.WriteLine(branch.PadLeft(n + 3) + "*" + branch); } } Рабочий пример.Ответ 2
Ладно, я сегодня добрый: using static System.Console; class ChristmasTree { static void Main() { int size; Write("Enter size: "); while (!int.TryParse(ReadLine(), out size) || size <= 0) Write("Enter size, damn it: "); for (int i = 1; i <= size; i++) for (int j = 1; j <= i; j++) WriteLine(new string(' ', size - j) + new string('*', j * 2 - 1)); } } Но вообще-то надо писать так: using static System.Console; using static System.Linq.Enumerable; using static System.Int32; using static System.String; class ChristmasTree { static void Main() { int size; Write("Enter size: "); while (!TryParse(ReadLine(), out size) || size <= 0) Write("Enter size, damn it: "); WriteLine(Join("\n", Range(1, size).SelectMany(i => Range(1, i), (i, j) => new string(' ', size - j) + new string('*', j * 2 - 1)))); } }Ответ 3
http://ideone.com/zN1QI3 using System; using System.Text; public class Test { public static void Main() { int n = 10; var sb = new StringBuilder(); string temp; for (int q=0; q
Комментариев нет:
Отправить комментарий