Профил
Loading...
MBMihov avatar MBMihov 0 Точки

#Java Задача 10. Volleyball

Здравейте колеги.

Отделих над час в мислене и проби относно тази задача  и максималното, което извлякох от Judge e 90 точки. Мисля, че една от грешките ми е представянето на "2/3" като 0.66, тъй като в зависимост от броя на шестиците, резултатът е различен. Но как може да се определи броят им ?? Ще бъда много благодарен ако някой успее да открие грешката в кода. Моля абстрахирайте се от имената на променливите 

 

https://pastebin.com/X8VwabLe

0
Programming Basics
Y.Yordanov21 avatar Y.Yordanov21 51 Точки
Best Answer

Здравей, 

имах подобед проблем със задачата, но на C#. 

Оправих го като вместо 2/3 и 3/4 ги въведох 2.0/3.0 и 3.0/4.0, за да се получи double променлива. Предполагам на Java проблема ще е същия. 

Пускам ти решението на C#, ако може да ти помогне:

https://pastebin.com/bXDk4Rii

0
MBMihov avatar MBMihov 0 Точки

Евалата колега, страшен си, това беше проблема. Но как си се сетил и защо се прави това нещо по-точно ? Аз пробвах варианта да го напиша 2/3 - даде ми 0 при дебъгера и от там резултата въобще не беше верен. 

ПП не ми дава да ти вотна +че

0
Y.Yordanov21 avatar Y.Yordanov21 51 Точки

Проблема е, че като го запишеш 2/3 и нямаш double променлива преди това, 2/3 го приема за int променлива и го закръгля на 0 и оттам ти дава 0 при debug-a. 

A като го напишеш 2.0/3.0 , дори е достатъчно само едното да е записано(2.0/3 или 2/3.0), резултата става double и вече не го закръгля на 0.

0
zahirff avatar zahirff 0 Точки

Благодаря много ! Имах същият проблем и много ми помогна отговорът, сега имам 100/100 :)

0