Софтуерно Инженерство
Loading...
+ Нов въпрос
vegenov avatar vegenov 0 Точки

[Programming Fundamentals] 13. Game of Numbers

Judge-а ми дава 83 / 100 . Причината е, че никъде не проверявам коя е последната комбинация при, която сбора е равен на магическото число и когато има повече от една комбинация програмата ми извежда всички възможни, вместо само последната. Ами не успях да измисля как да запомня само последната комбинация frown Дайте едно рамо smiley

 

code

0
Programming Fundamentals 27/05/2017 15:20:01
Jovtcho avatar Jovtcho 20 Точки
Best Answer

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

http://prntscr.com/fcp34d

Това са корекциите, които направих в твоя код и вече е 100/100 в Джъдж. 

Понеже се търси последната комбинация според мен най-лесно е да намерим първата отзад напред и затова и 2-та цикъла трябва да са намаляващи. Не знам дали във външния цикъл нарочно си оставил да вървиш от малкото към голямото число.

И второто условие на задачата е, че веднага щом намери сума равна на магическата да излезе от програмата. Затова съм сложил return. В противен случай ще намериш и останалите суми и Джъдж пак ще те наплюе.

Дано съм ти бил полезен.

 

0
vegenov avatar vegenov 0 Точки

Jovtcho, благодаря! Как не се сетих по-рано, че трябва да си обърна цикъла? Явно съм бил забил laugh

0
Jovtcho avatar Jovtcho 20 Точки

Случва се. Аз бяха така на 11-та задача с 5-те числа. А, е толкова елементарна.

0
strikeit avatar strikeit 1 Точки

Здравей, можеш ли да ми кажеш как направи проверката с  "13 , 16" да изписва НО, и същевременно да си продължава нормалната работа с 3 и 8 ?

0
AnnaProgrammer avatar AnnaProgrammer 74 Точки

Трябва да прекратиш двата цикъла веднага щом намериш комбинация. Ето моят вариант:  https://pastebin.com/ADY22nVX

Променливите currentI и currentJ са за да запазиш стойностите на i и j извън циклите а булевият израз ти позволява да ги прекратиш.

 

0
dimitar90 avatar dimitar90 13 Точки

Здравей, трябва да вдигнеш флага още един път и във първият цикъл,най - добре :))

0
29/05/2017 00:15:55
msotiroff avatar msotiroff 136 Точки

Може и с нарастващи цикли да се реши. Просто пазиш последните две цифри, сбора на които е равен на магическото число, в отделни променливи, декларирани преди циклите.

Ето как - https://github.com/msotiroff/Programming-FUNDAMENTALS/blob/master/HomeWorks/CSharp%20Conditional%20Statements%20and%20Loops/13.%20Game%20of%20Numbers/Program.cs

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

Проверката с matchCounter ти е излишна- не се изисква по условие - броят се комбинациите числа.Не е нужно да се броят отделно мачванията.https://pastebin.com/gu9VJt3X

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

https://pastebin.com/yJEEuaVG

0
filipov.v avatar filipov.v 25 Точки

След като получиш успешно комбинация трябва да прекъснеш циклите ( и двата в случая, което предполагам е проблема). Това е моето решение, надявам се да ти помогне: https://pastebin.com/UAM10B2J

0
simeon3000 avatar simeon3000 265 Точки

Нищо не трябва да се прекъсва, на нас ни трябва последната и само последната комбинация, т.е. трябва да извъртим циклите до край и да презаписваме всеки път, ако има такава комбинация. Вижте моето решение: https://pastebin.com/nHf5a73b

 

ред. то било същото на като на msotiroff :)

0
29/05/2017 21:15:35
filipov.v avatar filipov.v 25 Точки

Ясно е, че задачата може да се реши по много начини. Моя коментар е по отношение на решението на vegenov и какво да допълни, за да стане 100/100.

1