Софтуерно Инженерство
Loading...
+ Нов въпрос
Sanity avatar Sanity SoftUni Team Trainer 192 Точки
Best Answer

Не сте на изпит, но сте на упражнение, което също има някаква тежест към крайната оценка от курса. Абсолютно нормално е тестовете да са скрити... Ако цял курс даваме открити тестове, накрая като пуснем изпита със закрити и всички масово ще недоволстват, а да оставим и на изпита открити тестовете е абсолютно невъзможно по разбираеми причини.

image
Тази част от кода е "хардкодната" (hardcode) ... Или умишлено напипана така, че да минат нулевите тестове, защото някъде нагоре в логиката не се е получило добре резултата. Това не е правилен подход. Да се опитвате да изкарате нулевите тестове с грешна логика няма как да ви осигури останалите точки от задачата.

Махни тези "-1" и "-2".


В горния цикъл, второто count++ е безсмислено и ти чупи логиката.

image

Махни го и него и кодът ти става абсолютно правилен.

 

Поздрави,
Иво Желев

5
valcho62 avatar valcho62 178 Точки

Еми не само брояча му е грешен. Грешна му е и логиката за сумата - тя не трябва да е в else.

               

0
Sanity avatar Sanity SoftUni Team Trainer 192 Точки

@valcho62
Така, както е имплементирал логиката е абсолютно правилно ...

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

Колкото до "return" варианта. Той би изисквал знания по методи... Приема се, че все още хората не знаят какво са Методи и как се излиза от тях преждевременно, тъй като не е минала лекцията по тази тема.

0
valcho62 avatar valcho62 178 Точки

Ей така е най-лошо - нулевите минават, обаче 0т. ;-)) .Общо взето свиквай и си викай неволята.

Защо 3 пъти правиш проверка sum>= maxsum ? Още във първата печатай и прекъсвай цялата програма с  return. Ako нямаш прекъсване най-отдолу печатай другия вариант . Така ще избягаш oт фокусите ти за count.

0
DanielGM avatar DanielGM 2 Точки

Здравейте! Аз също искам да попитам за тази задача, не си виждам грешката, която е на последния тест, получавам само 83/100. Ето го и решението ми: https://pastebin.com/Vk3WPbTJ

0
alextr avatar alextr 59 Точки

По принцип няма нужда от тази булева променлива, но и с нея може да проработи. Тъй като операторът break излиза само от най-вътрешния цикъл, ще имаш нужада и от още един break, за да излезеш и от външния. Тъй като не знам какви са входните данни на теста, който гърми и няма как да го пусна през de-bugger, предполагам че се получава ситуация, при която булевата ти променлива не си сменя стойността от false на true, тъй като програмата не излиза от външния цикъл при изпълнение на условието (sum >= magicNumber). Поправих я така и минава със 100/100: https://pastebin.com/wRkkECdu

0
DanielGM avatar DanielGM 2 Точки

Благодарности!

0
athristov avatar athristov 29 Точки

Ето и моя код. 

https://pastebin.com/NrtmVNNp

0
mariastoilova avatar mariastoilova 6 Точки

Здравейте,

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

https://pastebin.com/cNfQcZBw

 

0
kratun avatar kratun 21 Точки

Премести този кода за изчисляване на сумата  и брояча преди if-a във вторият цикъл и всичко трябва да е наред. :)

Ето коригиран вариант тук.

 

 

0
28/01/2018 22:00:08
mariastoilova avatar mariastoilova 6 Точки

Благодаря :)

0
persuader avatar persuader 24 Точки

Ето и моя  код

0
30/01/2018 15:20:45
plamen1982 avatar plamen1982 1 Точки

Здравейте,

Аз се опитах да разработя решение което не включва два break-a; а само един return когато sum >= maxSum; Но judge ми дава само 83/100 точки и не мога да зацепя защо, ако някой ми каже ще съм блогодарен. Би трябвало мойто решение да е еквивалентно на тези от по-горе. Ето и кода :)

https://pastebin.com/JhT32YYE 

0
plamen1982 avatar plamen1982 1 Точки

Открих какъв е проблемът,

Просто размених конструкцията на if-a и count++ - a. 

Ето и кода за който му е любопитно :)

https://pastebin.com/sRtPCerM

0