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);
        }
    }
}
А след като се поворих видях че има подобна тема и трябва да променя дължината на средната част на първич, предпоследния и последния ред на n * 2 - 4 - 2 * (n / 2).
Не бих се сетил......
Трябва да ескейпваш някои специални символи като наклонена черта и кавички с другата наклонена черта(\). Стрингът abc\123 би изглеждал така във Visual Studio: "abc\\123". Също можеш да използваш @ пред стринга(@"abc\123"), за да приема всичко буквално.
Благодаря!
Точно така. Когато търсиш формула за някоя незнайна част и ти е трудно да я откриеш, виж първо това което е известно. Например в случая по условие знаем, че ширината на фигурата е 2 * n колони. Знаем, че кулите - "^" заемат n / 2, също по условие, а от самата рисунка се вижда, че имаме още 4 заети позиции от символите "/" и "\". От това можем да стигнем до заключението, че областта, която ни интересува (бройката "_" в средата) ще бъде равна на - 2 * n - 4 - 2 * (n / 2). Аз лично така правя. Първо преглеждам 100% известното и търся начин чрез него да намеря нещо, което ми трябва. А както колегата е споменал символът ' \ ' не ти го изкарва, защото когато е единичен има малко по особена употреба, обяснена добре в книгата. В случая просто трябва да го въведе така - "\\". Ето и моето решение, ако те интересува http://pastebin.com/5NBz3tyB
Да, Благодаря ти! Четох и коментарите по форумите и ми стана ясна логиката!