Професионална програма
Loading...
+ Нов въпрос
i.petk0v avatar i.petk0v 56 Точки

Авторска задача с рисуване - Burj Al Arab

Здравейте,

едно предизвикателство за хората от "Основи на програмирането". Задача с рисуване- любимите заздачи на доста от нас и доста трудни за начинаещите.

Линк за сваляне на условието и примери:  http://dox.bg/files/dw?a=369cf4b602

" BURJ AL ARAB" 

Ширина на фигурата: n*2+2

Дължина на фигурата: n*5-1

 

 


 

0
Programming Basics
VenciSarov avatar VenciSarov 37 Точки

Здравей,

Интересна фигурка. Това успях да скалъпя в бързината и мисля, че работи коректно :)

using System;

class burjAlArab
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());

        int middleSymbols = 0;
        for (int i = 0; i < n / 2; i++)
        {
            Console.WriteLine("|");
        }
        for (int i = 0; i < n * 2 + 1; i++)
        {
            if (i < n - 1)
            {
                Console.WriteLine("|{0}\\", new string(' ', middleSymbols));
                middleSymbols++;
            }
            else
            {
                Console.WriteLine("|{0}\\", new string('*', middleSymbols));
                middleSymbols++;
            }
        }

        middleSymbols--;
        for (int i = 0; i < n + 1; i++)
        {
            Console.WriteLine("|{0}|", new string('*', middleSymbols));
        }
        for (int i = 0; i < n - 2; i++)
        {
            Console.WriteLine("|{0}/", new string('*', middleSymbols));
            middleSymbols--;
        }

        Console.WriteLine("{0}", new string('-', n * 3));
    }
}

0
Iliev88 avatar Iliev88 39 Точки

Набързо това сглобих - http://pastebin.com/T48qhQY4 :)

Утре ще я доразгледам. Хубава задача :)

0
VenciSarov avatar VenciSarov 37 Точки

Липсва ти последния ред с чертичките :)

0
Iliev88 avatar Iliev88 39 Точки

Мислех, че не е част от картинката. Ще го добавя, ха-ха.laugh

0
dobroslav.atanasov avatar dobroslav.atanasov 247 Точки

Ето един вариант и от мен - http://pastebin.com/VbxjkqyE

0
VenciSarov avatar VenciSarov 37 Точки

Решението на задачата ти е вярно, но забелязах грешка в условието.

Най-долния ред е n*3 (така излиза в дадените примери, ако преброиш чертичките), което не отговаря на условието, че ширината на фигурата е n*2+2 .

0
i.petk0v avatar i.petk0v 56 Точки

Да, грешката е моя, извинявам се.

0
GallyaNs avatar GallyaNs 23 Точки

Много хубава задачка :) Ето го моето решение, да се надявам, че съм минала judge

 

http://pastebin.com/QSHBFzjr

0
VenciSarov avatar VenciSarov 37 Точки

Ето още едно решение от мен без  new string, а с вложени цикли, което изглежда доста по-грозно според мен, но все пак е решение :)

using System;

class burjAlArab
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());

        for (int i = 0; i < n / 2; i++)
        {
            Console.WriteLine("|");
        }
        for (int row = 0; row < n * 2 + 1; row++)
        {
            Console.Write("|");
            if (row < n - 1)
            {
                for (int col2 = 0; col2 < row; col2++)
                {
                    Console.Write(" ");
                }

                Console.WriteLine("\\");
            }
            else
            {
                for (int col2 = 0; col2 < row; col2++)
                {
                    Console.Write("*");
                }

                Console.WriteLine("\\");
            }
        }
        for (int row = 0; row < n + 1; row++)
        {
            Console.Write("|");
            for (int col = 0; col < n * 2; col++)
            {
                Console.Write("*");
            }
            Console.WriteLine("|");
        }
        for (int row = 0; row < n - 2; row++)
        {
            Console.Write("|");
            for (int col = 0; col < (n * 2) - row; col++)
            {
                Console.Write("*");
            }
            Console.WriteLine("/");
        }
        for (int col = 0; col < n * 3; col++)
        {
            Console.Write("-");
        }

        Console.WriteLine();
    }
}

0
25/11/2016 08:44:14