Problem 04 - Legendary Farming - Java Fundamentals Retake - 26 October 2015
Привет,
Написах задачата, получават ми се нулевите тестове, но като я пусна в джъдж системата дава грешка по време на изпълнението за всичко, включително на нулевите тестове. Пускам си джава код, не C#, така че не е от това. Доколкото разчитам информацията за нулевите тестове проблемът е в сканирането на празния ред (след като инпута приключи), което не се случва, т.е. while цикълът ми не приключва и затова дава грешката. И нещо не мога да зацеля какво се случва, понеже с импута от уърд файла на задачата програмата прочита "" ред и се изпълнява, а с инпута от джъджа ме чака да му ударя enter, за да продължи. Пробвах да му слагам разни scanner.nextLine() тук-там, обаче нищо не става и не разбирам как да го направя.
Това е кода:
http://pastebin.com/nPrVf0Cj
Нещо не ми се получи нито един от вариантите - в зависимост какво пробвам или иска да натисна допълнителен enter, или направо увисва в безкрайни цикли. В крайна сметка брейкнах цикъла с един boolean, обаче продължава да ми е интересно какво всъщност прави Scannera в тези ситуации, така че да се получи увисването.
Последно това направих, понеже естествено имах и други грешки в първоначалния вариант :) :
http://pastebin.com/hKVBEsDS
Проблема в първия вариант ти е, че while цикъла ти никога не спира. Във втория (поправения) вариант имаш няколко неизползвани променливи и там където слагаш :
спокойно вече можеш да го заместиш с :
А увисването се получава, не от Scanner-а, а от безкрайния цикъл.
Успех!
EDIT: Затваряй Scanner-a, когато свърши четенето: scn.close();