Loading...
AlexanderPetkov27 avatar AlexanderPetkov27 1 Точки

Помощ със задача Sunglasses от Drawing with loops

Здравейте,

с тази задача стигнах до тук и се опитвам да махна празните пространства между рамката на стъклата и дясното стъкло. 

 

[url=https://ibb.co/eSgSk6][img]https://thumb.ibb.co/eSgSk6/Clipboard01.jpg[/img][/url]

 

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

namespace tree
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            Console.Write("{0}{0}{1}{0}{0}", new string('*', n), new string(' ', n), new string('*', n));
            Console.WriteLine();
            for (int i = 1; i < n - 1; i++)
            {
                Console.Write("*");
                for(int y=0; y<(n*2)-2; y++) //chertae redove
                {
                    Console.Write("/");
                }
                Console.Write("*");
                if (n % 2 == 0 && i < 2)                         //pochva mosta
                {
                    Console.Write("{0}", new string('|', n));
                }
                while (i >= n / 2 && i <= n / 2 && !(n%2==0))
                {
                    Console.Write("{0}", new string('|', n));
                    break;
                }

                Console.Write("{0}", new string(' ', n)); 
                Console.Write("*");                                  //pochva vtoroto stuklo
                for (int y = 0; y < (n * 2) - 2; y++) 
                {
                    Console.Write("/");
                }
                Console.Write("*");

                Console.WriteLine();
               

            }
            
            Console.Write("{0}{0}{1}{0}{0}", new string('*', n), new string(' ', n), new string('*', n)); /// pochva nai dolen red
            Console.WriteLine();
        }
    }
}

Тагове:
0
Programming Basics
ad2bg avatar ad2bg 123 Точки

Заместваш тези редове:

                if (n % 2 == 0 && i < 2)                         //pochva mosta
                {
                    Console.Write("{0}", new string('|', n));
                }
                while (i >= n / 2 && i <= n / 2 && !(n % 2 == 0))
                {
                    Console.Write("{0}", new string('|', n));
                    break;
                }
                Console.Write("{0}", new string(' ', n));

 

с тези:

                if (i == Math.Ceiling((double)(n - 2) / 2)) { Console.Write( new string('|', n)); }
                else { Console.Write(new string(' ', n)); }

0
ad2bg avatar ad2bg 123 Точки

Или може само с един ред, макар че е една идея по-трудно четимо:

Console.Write(new string(i == Math.Ceiling((double)(n - 2) / 2) ? '|' : ' ', n));

0
AlexanderPetkov27 avatar AlexanderPetkov27 1 Точки

Мерси колега става идеално, само където от условието на задачата не се разбира мн добре на кой ред трябва да излизат пайповете след като въведем вход n= на четно число например 6, дали на първият ред  с / или на реда преди средния ред...

 

 

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