Loading...
RadoslavStamboliev avatar RadoslavStamboliev 6 Точки

[Programming Basics] Exam - 7 May 2017 05. Crown

Здравейте, колеги! Може ли да ми помогнете с тази задача? Закъсах на нея и не я схващам.

https://judge.softuni.bg/Contests/Practice/Index/540#4

Изпит по "Програмиране за начинаещи" – 7 май 2017

Задача 5. Корона

Да се напише програма, която прочита от конзолата цяло число N чертае корона, като в примерите по-долу. Короната има ширина  - (2 * n) – 1 колони и височина - (n  / 2) + 4 реда.

Вход

Входът се чете от конзолата и съдържа само едно четно число:

  • N – цяло число в интервала [8 … 50].

Изход

Да се отпечата на конзолата корона като в примерите по-долу.

Примерен вход и изход

Вход

Изход

Вход

Изход

8

@      @      @

**     *     **

*.*   *.*   *.*

*..* *...* *..*

*...*.....*...*

*....**.**....*

***************

***************

10

 

 

 

 

@        @        @

**       *       **

*.*     *.*     *.*

*..*   *...*   *..*

*...* *.....* *...*

*....*.......*....*

*.....***.***.....*

*******************

*******************

Тагове:
0
Programming Basics 08/08/2017 18:07:35
fbinnzhivko avatar fbinnzhivko 1586 Точки

По добре покажи код докъдето си стигнал или питай каквото те интересува.Най лесното е да ти покажа готов код
Примерно решение - C#
Java решение

0
08/08/2017 16:30:35
RadoslavStamboliev avatar RadoslavStamboliev 6 Точки

Това съм написал ама не работи коректно!

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

namespace Crown
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            var size = (2 * n) - 1;
            var tochki = 1;
            var emptySpaces = (size - 2) / 2;
            Console.WriteLine("@{0}@{0}@", new string(' ', emptySpaces));
            Console.WriteLine("**{0}*{0}**", new string(' ', emptySpaces - 2));
            
            for (int i = 0; i < n/2-1; i++)
            {

                Console.WriteLine("*{0}*{1}*{0}*{1}*{0}*", new string('.', tochki),
                    new string(' ', emptySpaces - 4), new string('.', tochki),
                    new string(' ', emptySpaces - 4), new string('.', tochki));
                tochki++;
                emptySpaces--;
                

            }
            Console.WriteLine(new string('*', size));
            Console.WriteLine(new string('*', size));
        }
    }
}
 

1
08/08/2017 16:38:02
traykova44 avatar traykova44 93 Точки

Здравейте, при тази задача не мога да разбера, защо само единят ред е в цикъла.

for (int i = 0; i < height - 6; i++)
            {
                Console.WriteLine("*{0}*{1}*{2}*{1}*{0}*", new string('.', i + 1), new string(' ', (weight - 9 - (4 * i)) / 2), new string('.', 2 * i + 1));
            }
            Console.WriteLine("*{0}*{1}.{1}*{0}*", new string('.', (n / 2) - 1), new string('.', (n / 2) - 2));
            Console.WriteLine("*{0}{1}.{1}{0}*", new string('.', n / 2), new string('*', (weight - 3 - n) / 2));

не могат ли да се зададът и другите два реда вътре , нали и 3- те реда са по веднъж?

0
RujenaDimitrova avatar RujenaDimitrova 18 Точки

Здравей! Трябва да натрупаш много опитност, да пробваш различни варианти. Аз даже си начертах фигурката на бял лист, за да видя по-отблизо, "да усетя" къде е повторяемостта, :) Малко по-малко, ти изкристализира решението, разбираш защо се построява с цикъл или пък без. Опитните колеги дават интересни решия и така се учим, :).

0
IvanTs avatar IvanTs 4 Точки

https://pastebin.com/7N6Cm0He 

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

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