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

Задача "Fox" - Programming Basics Exam - 20 November (Morning)

Здравейте,

Някой може ли да обясни как трябва да се сметнат очичките на "Лисицата"? Как сте определили точно колко реда заема тази част от картинката? Проблем заради, който останах на 510/600.

Благодаря предварително! :)

Тагове:
0
Programming Basics
IvanNiv avatar IvanNiv 13 Точки
Best Answer

Условието на задачата не е коректно в частта очичките на "Лисицата".

Като броя на примерните изходи е недостатъчно да се стигне еднозначно до тази логика - целочислено делене на 3.

Има поне още 2- 3 логики до които може да се стигне при предложени само 3 изхода. А за авторите на задачата те са неправилни логики.

Например:

1 вариант логика е целочислено делене на 4 + 1. Така за n =7 7/4 = 1 +1 = 2 реда, за  n =9 9/4 = 2 +1 = 3 реда и за  n =11 11/4 = 2 +1 = 3 реда;

2 вариант логика е, че при n =7, редовете са 2, а при n >7, редовете са 3;

3 вариант логика е да се сравняват звездичките в последния ред. Прави се цикъл за редовете на очите докато разликата между звездичките по средата и звездичките в двата края стане <= 1.

Защо всички тези логики да покриват изцяло предложените три изхода в задачата, а да са грешни отговори?

1
GyokayAli avatar GyokayAli 1 Точки

Благодаря за коментара колега!

Напълно съм съгласен... лично ми беше трудно да определя стойностите от дадените примери с n = 7, 9, 11.

Явно не им се e занимавало :D

1
GapoBG avatar GapoBG 15 Точки

Защо при моето решение рисувам лисцата, но Judge НЕ МИ дава 100%,

Решението ми следва втората ти логика. Първата ми логика беше за очите да се вземе.

var eyes = Math.Sqrt(n);
eye = Math.Floor(eyes);

Какво очаква Judge от мен ?!?! Ето го решението ми ...

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

namespace Fox
{
    class Fox
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            var star = 1;
            var middleStar = n;
            var dash = (2 * n - 1);


            if (n!=2 && n>=7 && n<=57)
            {
                for (int i = 1; i <= n; i++)
                {
                    Console.WriteLine(new string('*',star) + "\\" + new string('-',dash) + "/" + new string('*',star));
                    star++;
                    dash-=2;
                }

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

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

 

0
GapoBG avatar GapoBG 15 Точки

с цело числено деление докарах сега до 80%

http://pastebin.com/cArepW3c

 

0
JivkoJelev avatar JivkoJelev 235 Точки

Нямах никакви проблеми със задачата на изпита.В последствие разбрах че доста хора са имали проблем с очите на лисицата.Ето го и моето решение.http://pastebin.com/4nTzjYRa

0
31/01/2017 16:37:16
IvanNiv avatar IvanNiv 13 Точки

Логиката за "очите на лисицата", която Judge очаква е целочислено делене на 3.

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