Loading...
ddrajko avatar ddrajko 5 Точки

12.Draw Fort

Някой може ли да ми помогне?

Получавам само 30/100

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DrawFort
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string firstRow = "";
            string lastRow = "";
            string SecondLastRow = "";
            string firstRowFirstPart = new string('^', n / 2);
            string lastRowFirstPart = new string('_', n / 2);
            string firstRowMiddlePart = new string('_', n / 2);
            string lastRowMiddlePart = new string(' ', n / 2);
            if (n>=3 && n<=4)
            {
                firstRow = "/" + firstRowFirstPart+ (char)(92)+"/" + firstRowFirstPart+ (char)(92);
                lastRow = (char)(92) + lastRowFirstPart + "/"+(char)(92) + lastRowFirstPart + '/';
                SecondLastRow = "|" + new string(' ', 2 * n - 2)+"|";
                Console.WriteLine(firstRow);          
            }
            else
            {
                firstRow = "/" + firstRowFirstPart + (char)(92) + firstRowMiddlePart+"/" + firstRowFirstPart + (char)(92);
                lastRow = (char)(92) + lastRowFirstPart + "/"+lastRowMiddlePart+ (char)(92) + lastRowFirstPart + "/";
                SecondLastRow = "|" + new string(' ', n / 2)+" "+new string('_', n / 2)+ new string(' ', n / 2)+ " |";
                Console.WriteLine(firstRow);
            }
            for (int i = 0; i < n-3; i++)
            {
                            
                
                    Console.Write("|");
                    Console.Write(new string(' ', 2 * n - 2));
                    Console.WriteLine("|");
                
            }
            Console.WriteLine(SecondLastRow);
            Console.WriteLine(lastRow);

        }
    }
}

 

Тагове:
0
Programming Basics
ddrajko avatar ddrajko 5 Точки

Visual Studio не ми приемаше ' \ ' символа, затова го пуснах с кода. Някой знае ли защо?

0
ddrajko avatar ddrajko 5 Точки

А след като се поворих видях че има подобна тема и трябва да променя дължината на средната част на първич, предпоследния и последния ред на  n * 2 - 4 - 2 * (n / 2).

Не бих се сетил......

 

0
krasi1105 avatar krasi1105 380 Точки

Трябва да ескейпваш някои специални символи като наклонена черта и кавички с другата наклонена черта(\). Стрингът abc\123 би изглеждал така във Visual Studio: "abc\\123". Също можеш да използваш @ пред стринга(@"abc\123"), за да приема всичко буквално.

0
ddrajko avatar ddrajko 5 Точки

Благодаря!

0
alextr avatar alextr 60 Точки

Точно така. Когато търсиш формула за някоя незнайна част и ти е трудно да я откриеш, виж първо това което е известно. Например в случая по условие знаем, че ширината на фигурата е 2 * n колони. Знаем, че кулите - "^" заемат n / 2, също по условие, а от самата рисунка се вижда, че имаме още 4 заети позиции от символите "/" и "\". От това можем да стигнем до заключението, че областта, която ни интересува (бройката "_" в средата) ще бъде равна на - 2 * n - 4 - 2 * (n / 2). Аз лично така правя. Първо преглеждам 100% известното и търся начин чрез него да намеря нещо, което ми трябва. А както колегата е споменал символът ' \ ' не ти го изкарва, защото когато е единичен има малко по особена употреба, обяснена добре в книгата. В случая просто трябва да го въведе така - "\\". Ето и моето решение, ако те интересува http://pastebin.com/5NBz3tyB

0
19/02/2017 20:53:41
ddrajko avatar ddrajko 5 Точки

Да, Благодаря ти! Четох и коментарите по форумите и ми стана ясна логиката!

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