Loading...
yasen.ivanov avatar yasen.ivanov 1 Точки

[Judge] C# Basics - Exam 10 April 2014 Evening - Problem {01} - Volleyball - въпрос

Здравейте,

имам малък проблем: в judge системата за тази задача ми се дават 30/100 точки. Когато въведа примерния Input от задачата ми излизат точните отговори. Вероятно проблема е свързан със закръглянето на числата. Може ли някой да ми посочи грешкатa?.

Ето линк към кода - http://pastebin.com/Bccw1Wvx

 

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

Тагове:
0
Programming Basics
Filkolev avatar Filkolev 4482 Точки

Грешката ти е, че ползваш 0.66 вместо 2/3, не е едно и също, защото 2/3 = 0.(6). 

Замени 0.66 с 2.0/3 и виж дали ще се оправи.

0
Filkolev avatar Filkolev 4482 Точки

Имам и предложения за подобрения на кода.

Ето този израз: double totalPlays = (hometownWeekends + normalWeekends + holidayPlays);

Имаш го и в двете части на условната конструкция. Той не зависи от вида на годината, логично е да го изкараш преди if-a.

Също, новата променлива, която декларираш, leapYear, не е нужна. Смятай си с totalPlays, например така:

totalPLays += totalPlays * 0.15;

Накрая, в условната конструкция пак имаш повтарящ се код, Console.WriteLine. Изкарай го накрая. Така реално отпада и нуждата да слагаш else, if-a ще проверява само дали годината е високосна.

Ако не се лъжа съм виждал много подобно решение, почти същите неща бяха направени. 

1
yasen.ivanov avatar yasen.ivanov 1 Точки

Благодаря за разяснението - вече ми дава 100/100 точки.  Преди да пробвам с 0.66 бях пробвал с 2/3, а не 2.0/3 - явно трябва повечко да внимавам с типовете данни...  

Благодаря и за подобренията по кода - малко дървено съм решил задачата, но бях погълнат от това да изкарам точния резултат :D

0
boyanov avatar boyanov 65 Точки

Аз по същият начин ги закръглям, но ми дава 100т. >задачата ми<
Можеш да си изтеглиш вариянта от >тук<. Мисля че беше 2ри. В него са тестовете които ти вкарва Judge. Ако го дебъгнеш би трябвало да си видиш грешката.

0
yankozlatanov avatar yankozlatanov 10 Точки

Здравейте колеги,

И аз ще помоля за малко помощ.

http://pastebin.com/fVNeEy5D тук съм качил и моето решение, което в judge системата и на мене ми дава 50%, а на примерите към домашното всичко излиза ок.

Моля, някои да ми подскаже къде правя грешка.

Благодаря Ви предварително.

0
Kamigawa avatar Kamigawa 750 Точки

В сметките ти е грешката. Ако годината е leap трябва да умножиш всичко с 1.15 или както си направил да събереш : “play = play + (play * 0.15)“. Т.е. “hometown“ трябва да го събереш преди това -> “double play = (holidays * (2.0 / 3.0) + normalWeekends) + hometown;“. Така би трябвало да работи нормално.

1
nasko717 avatar nasko717 30 Точки

Здравей,

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

В случая проверяваш само, ако е "leap" да ти добави 15% и става само с един "if".

Mod Edit: Нарушена т. 12 от Правилата на форума: Във всеки пост е позволено цитирането на не повече от 15 реда код. Ако искате да споделите по-дълъг код, използвайте сайтове като Pastebin и Github Gist).

1
13/11/2014 14:58:34
yankozlatanov avatar yankozlatanov 10 Точки

Супер сте колеги !

Проблема е решен с изкарването на "hometown" извън if-а .

Хиляди благодарности за бързото отзоваване и адекватната помощ.

0
fbinnzhivko avatar fbinnzhivko 1586 Точки

https://softuni.bg/forum/questions/details/217  - Молим всички потребители да спазват следните правила!
 

100/100 - Judge - https://judge.softuni.bg/Contests/Practice/Index/153#9    -   

 https://gist.github.com/Tuscann/2415cab39d906a3bdd67

 

using System;

class Program
{
    static void Main()
    {
        var year = Console.ReadLine().ToLower();
        var happyDays = double.Parse(Console.ReadLine());
        var weeksReturnHome = double.Parse(Console.ReadLine());

        var weekInYear = 48.0;
        var weekends = (weekInYear - weeksReturnHome) * 3.0 / 4.0;
        var sofiaPlays = happyDays * 2.0 / 3.0;
        var totalGames = weekends + sofiaPlays + weeksReturnHome;

        if (year == "leap") { totalGames = totalGames * 1.15; }

        Console.WriteLine(Math.Truncate(totalGames));
    }

}

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