Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Ёлка на конcоли

#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

Комментариев нет:

Отправить комментарий