Loading...
BobbyStefanov avatar BobbyStefanov 0 Точки

Задача Draw Fort проблем

Написах задачата, всичките входове от условието ми работят и е вярно нарисувано, но judge ми дава само 30/100, някой ако намери нещо в кода ми за грешно да споделиfrown

 

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

namespace Castle
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            var shir = n * 2 - 2;

            if (n < 5)
            Console.WriteLine("/{0}\\/{0}\\", new string ('^', n / 2) );
            else if (n >= 5)
                Console.WriteLine("/{0}\\{1}/{0}\\", new string('^', n / 2), new string ('_', n / 2));

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

 

0
Programming Basics 16/12/2017 16:47:43
paveliliev90 avatar paveliliev90 74 Точки
Best Answer

Не се прави си if конструкции. Има формула, по която се изчислява средната част :)Ето код: https://pastebin.com/jDF3FA1K

 

0
BobbyStefanov avatar BobbyStefanov 0 Точки

Mерси разбрах :D

0
RosenTheHacker avatar RosenTheHacker 7 Точки

Чудя се за какво са ти тези условия в началото ако n<5,но няма значение ето правилния код само че на java решавахме задачата на една менторска среща.

 

import java.util.Scanner;
 
public class Fort {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
 
        int n = Integer.parseInt(console.nextLine());
        int midDashes = ((2*n) - 4) - ((n/2)*2);
        System.out.println("/" + repeatStr("^", n/2) + "\\" + repeatStr("_", midDashes)
                            + "/" + repeatStr("^", n/2) + "\\");
 
        for (int i = 0; i < n - 2; i++) {
 
            if (i == (n-2) - 1){
                System.out.println("|" + repeatStr(" ", (n/2) + 1) +
                                    repeatStr("_", midDashes)
                                  + repeatStr(" ", (n/2) + 1) + "|");
            }else {
                System.out.println("|" + repeatStr(" ",(2*n) - 2) + "|");
            }
        }
 
        System.out.println("\\" + repeatStr("_", n/2) + "/" + repeatStr(" ", midDashes)
                + "\\" + repeatStr("_", n/2) + "/");
 
 
    }
 
 
 
    private static String repeatStr(String str, int count){
        String result = "";
        for (int i = 0; i < count; i++) {
            result+=str;
        }
        return result;
    }
 
}

 

 

0
denis.argatski avatar denis.argatski 25 Точки

https://pastebin.com/WCwYrU1w - мойто решение

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