#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
Комментариев нет:
Отправить комментарий