Изпит по "Програмиране за начинаещи" – 7 май 2017
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
Основи на програмирането 08/08/2017 18:07:35
fbinnzhivko avatar fbinnzhivko 1572 Точки

По добре покажи код докъдето си стигнал или питай каквото те интересува.Най лесното е да ти покажа готов код
Примерно решение - 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