Loading...
Ivan_Stoykov avatar Ivan_Stoykov 2 Точки

Programming Basics Exam - 20 November 2016 - Morning. Fox.

Здравейте! Решавам задачи от минали изпити и при "рисуването" на лисицата се натъквам на проблем. Съгласно дадените примери в описанието, решението ми рисува правилно. В Judge получавам 0 точки. Предполагям, че проблемът ми е в неразбирането на условието на задачата. Ето какво имам впредвид: Понеже липсва описание за броя редове, аз броя редовете от примерите. В средата на фигурата има един сектор, за който не ми е ясно каква е зависимостта: При n = 7, секторът се състои от 2 реда, при n = 9  -> 3 реда, при n = 11 -> 3 реда. От това не мога да направя извод колко са редовете например при n = 13  и т.нт. Ето решението ми: http://pastebin.com/7vZBd2ga   Бихте ли ми подсказали, как да се реши, ако при n = 13 ->4 т.е.  при всяко n+=4  редовете да се увеличават с 1. Благодаря предварително!

0
Programming Basics
Ivan_Stoykov avatar Ivan_Stoykov 2 Точки

Аналогичен проблем срещам при "рисуването" на знак STOP от 24 April 2016. По никакъв начин не мога да преброя колоните вътре в знака (сливат се долните черти) и това ме отказва да я решавам.

0
dZf1aeA-MrJackson avatar dZf1aeA-MrJackson 1 Точки

За тази задача и аз не намерих зависимостта, която се оказа доста лесна. Благодаря на fbinnzhivko имах същите затруднения като при теб. А за знака стоп отваряш файла в word заставаш с курсора в единия край и започваш да местиш и броиш. Този hint ни го каза лектора от Велико Търново- Асен Николов wink

0
01/05/2017 17:41:55
fbinnzhivko avatar fbinnzhivko 1586 Точки

n/3 e зависимоста която търсиш.

using System;
class Program
{static void Main()
    {
        var n = int.Parse(Console.ReadLine());
        var lenght = 2 * n - 1;

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

0
25/02/2017 17:29:26
Ivan_Stoykov avatar Ivan_Stoykov 2 Точки

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

1
minito99 avatar minito99 23 Точки

Намери зависимост за това колко е дълъг реда след което си направи една променлива която да пази колко е дълъг реда след което от тази промелива изваждаш от нея останалите символи в този случай на първият ред,ако иска искаш да намериш тиретата правиш следното:Променлива която да пази "*" и за да намериш първият ред колко е дълъж и си правиш следната формула за да намериш тиренцета: реда - (2 * броя на звездичките) - 2. от реда вадиш 2 пъти боря на звездичките,защото звездичките от едната и от другата страна са еднакви на брой и изваждаш 2,защото има две наколнени четички и така намираш формулата за чертичките.Същтата формула можеш да ползваш за средният for цикъл:Дължината на реда - (2 * звездичките на лявата и дясната страна) - 4.Минус 4 защото тук имаш винаги 2 "|"  и по една "\" "/" и така си намираш звездичките в средата.

 

Ето и едно решение на Java това е подобен варянт: https://pastebin.com/tsSVYNwd

Ако желаеш мога да я разпиша по начина по който ти обясних. :)

0
06/05/2017 16:16:00
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

Ето го моето решение надявам се да помогне https://pastebin.com/KftxKMV5

0
HristoSpasov avatar HristoSpasov 36 Точки

Струва ми се, че ако разделиш n на 3 и вземеш цялата част, ще се получат нещата.

Успех.

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