Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

kenderov.emil avatar kenderov.emil 6 Точки

Проблем с Detective Boev

Днес реших да се пробвам с изпитната задача Detective Boev. Блъсках се не знам колко време и измислих следното:

http://pastebin.com/7YaLxnZr

Резултат има, почти. Умишлено message-а не го чета от конзолата за да не губя време докато тествам. Накрая стигнах до някакво решение, но вместо 'y' на University ми изписва '♥'(в началото следва да се изпише на конзолата C#). Колкото и разнежващо да е, това не е решението, което исках :D.

Някакви идеи, къде бъркам? Благодарско предварително :)

1
Programming Basics
sholeto avatar sholeto 93 Точки

https://gist.github.com/sholev/35c6dd25f2e76382e4e7 - не съм го пробвал в judge, оставам това на теб.

 

Първата грешка която забелязах - не се взима в предвид това, че маската трябва да е по-малка от 10, ако не е пак сумираш числата. Това не прави проблем при първия нулев тест, но ако пробваш останалите ще видиш резултата.

Другата грешка беше в do while цикъла, не знам защо въобще го ползваш, for цикъл си върши перфектна работа. Сърчицата идват от тук. Цикъла ти оставя празен елемент в началото - 0 - и този елемент после става на сърчице.

 

 

1
24/10/2015 23:19:49
krisdx avatar krisdx 68 Точки

Здравей,

с тези имена на променливи ми е малко трудно да се ориентирам в твоя код. Едната грешка, която забелязвам е, че сумираш числата само един път, а в условието пише да продължаваш да сумираш докато не се получи едноцифрено число. Тоест така както си го направил с метод е супер, само го сложи в един whlie-цикъл, докато (mask > 10).

Грешката с сърчицето накрая не знам от къде се получва. Правиш излишни парсвания към int, после към char и може би от там идва. Пооправих кода ти малко. Сложих while-цикъла за сумата. После закоментирах двата ненужни цикъла.

1
25/10/2015 00:12:38
M.Chorbadjiev avatar M.Chorbadjiev 54 Точки

http://pastebin.com/3tT5nXx5

Ето съвсем лека преработка на твоя код и от мен.Добавил съм само един if в SumDigits метода ти и вместо do-while използвам for цикъл.Колегите отгоре са обяснили защо , да не се повтарям и аз.

1
kenderov.emil avatar kenderov.emil 6 Точки

Благодаря на всички. Наистина проблема се оказа в do...while цикъла(ама се наложи да го сложа, защото преди това ми гърмеше не знам поради що). Оправих и това с ключовата дума(да се събира сумата още веднъж докато стане по-малко от девет, това го бях пропуснал в условието). И нещата си тръгнаха(100 точки в джъджа). Преработения ми код е : http://pastebin.com/3dkyb3jc

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