[Homework: Data Types and Variables] 8.Isosceles Triangle - отпимизация на решение.


0

Здравейте колеги,

Прилагам моето решение на триъгълника:

using System;
using System.Text;

class Program
{
    static void Main()
    {
        Console.OutputEncoding = Encoding.UTF8;
        char symbol = '\u00A9';
        Console.WriteLine("    {0}", symbol);
        Console.Write("   {0}", symbol);
        Console.WriteLine(" {0}", symbol);
        Console.Write("  {0}", symbol);
        Console.WriteLine("   {0}", symbol);
        Console.Write(" {0}", symbol);
        Console.Write(" {0}", symbol);
        Console.Write(" {0}", symbol);
        Console.WriteLine(" {0}", symbol);

    }
}

Понеже видимо моят метод е мега тромав бихте ли ми обяснили как да оптимизирам тези 10 реда в 1.

Благодаря предварително.




Отговори



2

Може да използваш @ преди стринга и така всеки нов ред в редактора ще е нов ред и в конзолата и просто копираш кода от условието.
Ето моето решение: 

using System;

class Program
{
    static void Main()
    {
        Console.OutputEncoding = System.Text.Encoding.Unicode;
        string triang = @"   ©

  © ©

 ©   ©

© © © ©";
        Console.WriteLine(triang);
    }
}


от ogitaki (130 точки)


0

Виж моето решение: http://pastebin.com/Aw2JgTga

{0} показва номера на позицията на променливата, която е предварително дефинирана и зададена след ",", като броенето започва от 0. В случая всички са нула, тъй като използвам само една променлива и нейната позиция се явява първа. Символът \n означава "нов ред".


от glukov (15 точки)


0
Благодаря, сега ще го тествам :)

от SPENS03 (82 точки)


1

Ето още един вариант на решението, който отне няколко опита, до уцелването на точната подредба :D

using System; using System.Text; namespace CopyrightTriangle { class DisplayTriangle { static void Main() { byte symbol = 169; char copy = (char)symbol; Console.OutputEncoding = Encoding.Unicode; Console.WriteLine(@" {0} {0} {0} {0} {0} {0} {0} {0} {0}", copy); } } }

Поздрави




0

Изцяло хамалската съм го направил аз. Във форума от форматирането нещо се обърква подредбата, но в VS ако подредите знаците за равенство едно под друго става перфектно. 

using System;

namespace _08.Isolate_Triangle
{
    class TrianglePrint
    {
        static void Main(string[] args)
        {
            string first      = "   ©" ;
            string second = "  © ©";
            string third    = " ©   ©";
            string fourth = "© © © ©";
            Console.WriteLine(first );
            Console.WriteLine(second);
            Console.WriteLine(third );
            Console.WriteLine(fourth);
        }
    }
}




0
Абе мисля, че щом не са дали "продължете структурата до 99ти ред", значи минаваме с тея номера :D


0

Съветът ми е да изпозлвате решението на glukov, a именно:

using System; using System.Text; namespace IsoscaleTriangle { class IsoScTr { static void Main() { char crt = '\u00A9'; Console.OutputEncoding = Encoding.UTF8; Console.WriteLine(" {0} \n {0} {0} \n {0} {0} \n{0} {0} {0} {0}", crt); } } }

Защото в този пример може и да се получат вариантите, но после ще закъсаме. Успех!

от SPENS03 (82 точки)