Loading...
KalinTomanov avatar KalinTomanov 0 Точки

Проблем с първата задача от "Programming Basics Exam - 20 November 2016 - Morning"

Здравейте,

Опитвам се да реша първата задача от изпита "Programming Basics Exam - 20 November 2016 - Morning", всичко работи, но поради някаква причина ми излиза че имам 80/100 точки. Като цъкна на details, ми изписва, че Test#1 и Тest#6 са грешни. Опитах да реша задачата по 10 различни начина, пак същото. Някой да има идея какви стойности дават тези Test#1 и Test#6?

Тагове:
0
Programming Basics 15/12/2016 22:31:55
nikiii07 avatar nikiii07 31 Точки
Best Answer

Проблемът е в закръглянето:
 

double sum = palamud + safrid + midi;
        sum = Math.round(sum*100.0);
        sum = sum/100.0;

        System.out.println(sum);

Замених имплементацията на закръглянето с форматиране на числото(самото форматиране също закръгля) и ти дава 100 точки:



double sum = palamud + safrid + midi;
DecimalFormat formatter = new DecimalFormat("#0.00");     
System.out.println(formatter.format(sum));

Имай предвид, че за да ползваш класа DecimalFormat трябва да имаш import на java.text.DecimalFormat. Има и други наичини да се форматира в Java(мисля, че имаше printf към System.out), но не мога да ти кажа със сигурност кой е най-добрият вариант и защо(C# all the way). Между другото всички валидации на входа са излишни(поне според мен), защото границите, които са ти дадени по условие са гарантирани във всички тестове(също така, в случай, че все пак ги искаш - празният if може да се замени като обърнеш условието):
 

if(quantityMIDI<=100 && quantityMIDI>=0){
}
else System.exit(0);
// replace with
if(quantityMIDI > 100 || quantityMIDI < 0){
    System.exit(0);
}

Дано не съм те объркал, а да съм помогнал, успех!

1
KalinTomanov avatar KalinTomanov 0 Точки

Говорим за Java, 

http://pastebin.com/M3SVVQDp

0
16/12/2016 08:20:51
Martin.T avatar Martin.T 35 Точки

http://pastebin.com/fEkRqJpU кода е на c# за което се извинявам.... Съвет от мен към тези задачи чисто и просто чети коментара в outputа-а и ще ги решаваш без проблем. Късмет  :)

0
Sim0o0na avatar Sim0o0na Trainer 567 Точки

За дълъг код използвай pastebin :)

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