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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.