Loading...
VanessaShopping avatar VanessaShopping 48 Точки

Programming Basics Exam - 17 January 2016 -> Problem 02 - Beer Stock

Здравейте

Започнах да решавам старите изпити от курса Programming Basics и ми трябва малко помощ с една от задачите

Ето линк към джъджа https://judge.softuni.bg/Contests/Practice/Index/149#1 

Става въпрос за втора задача.

Ето го и решението ми: http://pastebin.com/sLBwEReL

Тагове:
0
Programming Basics
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

1) "However since the world isn’t perfect in every 100 beers exactly the 100th is always broken so it gets discarded."

2) "The amount of reserved beer, and the amount in a shipment will be valid integers in the range [0... 2,147,483,647]." какво ще стане като ти подадат 2 инпута с максималната стойност на int?

 

От тук нататък си ти. Оправи тези 2 неща и ще вземеш 100 точки.

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

 

Поздрави!

0
VanessaShopping avatar VanessaShopping 48 Точки

1.  if (beersCout >= neededBeers)

             beersCout = beersCout - (beersCout / 100);

Задал съм го така понеже в условието пише ,че когато бирите са достатъчно и са над 100 всяка 100-тна бутилка е счупена. Не съм сложил допълнително условие ( && beersCout >= 100 ) понеже ако е под 100 няма да има разлика в резултата.

 

2. Всички променливи съм ги сменил с лонг... пак джъджа  не ми дава 100/100 . Просто съм качил старото решение с int

 

Съвети и критики приемам винаги :) 

0
26/08/2016 23:25:37
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

Къде пише, че само когато бирите са повече от нужните трябва да махаш всяка 100тна бира?

Само с тези 2 промени и с твоето решение взех точките. Сега ще ти напиша кое според мен е излишно по твоя код.

 

Поздрави!

0
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

Може би една идея по - добро решение от твоето. Не заделяма памет за 6 променлив, а само за 2 и спестих няколко if-а. Ако има нещо неясно може да питаш.

http://pastebin.com/gQPWmLji

 

Поздрави!

1
VanessaShopping avatar VanessaShopping 48 Точки

Заблудил съм се от примера... 

Amount of beers we have -> 2(cases) * 24 + 7(sixpacks) * 6 + 1 + 3 = 94 beers

Since 94 is less than 197 (the reserved beer), we need 197-94 = 103 more beers

 

Не съм взел в предвид колко бири е имало в наличност ( 94 ) а колко още ми трябват ( 103 ). От това 103 съм се объркал ,че когато бирите не стигат не се маха по 1 на всеки 100 :) 

0
kaloyannikov avatar kaloyannikov 531 Точки

може и с Math.Abs да вземаш разликата за да няма мн повторение на почти 1 и същи код => http://pastebin.com/NBGCynnz

0
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

Така и така правиш проверка дали имаш достатъчно бири, за да принтираш точното съобщение, не мисля че допълнителното извикване на Math abs е удачно решение.

 

Поздрави!

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