Loading...
papi80 avatar papi80 4 Точки

Задачата с басейна от междинния изпит 26 март

Здравейте колеги, моля за малко помощ за втората задача от междинния изпит проведен на 26 март. Условието го има в джъджа ето тук: https://judge.softuni.bg/Contests/Practice/DownloadResource/1208 . Ето и моя код: http://pastebin.com/vCQRaaXw

Дава ми само 53т. От 6-те задачи само тази не можах да реша. Отделих и повече от 1час и така и не можах да извадя повече от 53т. Незнам какъв е проблема.

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

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

Аз също в началото получвах малко точки а кода ми изглеждаше напълно верен и judge-a не ми показваше input-a и се чудих много време. На края проблема ми беше понеже смятах с double за да съм сигурен че сметките ще са точни и числото ми за процент и бях забравил да го визуализирам само до запетаята и примерно вместо 66% ми излизаше 66.00%. Аз в самия Console.WriteLine (); сложих по един (int) пред променливите за да покажа само цялата част без закръгляне както беше в условието. 

 

пример: 

Console.WriteLine("The pool is {0}% full. Pipe 1: {1}%. Pipe 2: {2}%.",(int)sumL,(int)k1,(int)k2);

 

1
papi80 avatar papi80 4 Точки

Благодаря колега стана точно както каза. Сложих един int пред променливите и ми даде 100т. Забравил съм че sumL също трябва да е цяло число. Нищо друго не съм променял.

Console.WriteLine("The pool is {0}% full. Pipe 1: {1}%. Pipe 2: {2}%.",(int) sumL,k1,k2);

0
28/03/2016 13:06:22
samnaliev avatar samnaliev 15 Точки

Ето моето решение за 100 точки. Дано ти е от полза. Извинявам се за малоумните имена на операторите :)

http://pastebin.com/BeZA137G

1
Thenis avatar Thenis 219 Точки

На 19-тия ред sumL трябва да е цяло число.

Трябва да го направиш ето така

double sumL = Math.Truncate((sum / v) * 100);

Изполвам метода Truncate които маха всичко след десетичната запетая.

Може и да използваш и Math.Floor вместо Math.Truncate.

Тогава ще ти даде 100/100

0
28/03/2016 12:19:09
krokicha avatar krokicha 76 Точки

Басейна е препълнен когато прелее, т.е. при v = sum не е препълнен. На 17-ти ред вместо "if (v >= sum)" трябва да е "if (v > sum)"- проверка дали е препълнен. А на 24-я ред "else if (v < sum)" трябва да е само "else", защото няма други възможности. И вместо double използвай decimal за по-точни сметки, когато не си ограничен откъм допустима за използване памет.

0
vancho avatar vancho 430 Точки

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

При първия тест където гърми инпута е: 1234512312310, а би трябвало да е ->

12345

123

123

10 (така дава верен отговор)
 

wink

А другите трябва да гадя как са ....

-1
28/03/2016 13:04:56
Lyubozar avatar Lyubozar 47 Точки

 И аз имах 53 точки на изпита на тази задача. Пробвах с Math.Truncate, Math.Round, Math.Floor, всичко, което бяхме учили до този момент, но не стана. Вчера от лекцията разбрах  за кастването и го пробвах и  с него взех 100 точки. Може би за другия изпит ще трябва да прочетем една или няколко лекции  напред за да знаем как да решим задачите.

0
evilsoldier avatar evilsoldier 2 Точки

Ето и едно решение за 100 от мен.

http://pastebin.com/bqftrhBp

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