Въпрос за задача Biggest of three на Java от Conditionals

Здравейте, може ли някой да ми разясни къде бъркам. Решавам задачата по два различни начина и не иска да мине на 100%.

1во решение: https://pastebin.com/5kAvsbkJ
2ро решение: https://pastebin.com/230V6FRK

Пробвах доста неща но явно, че бъркам някъде.

Аз искам до попитам същото.Защо изобщо понякога не тръгва?! На IDE-то върви перфектно. Също така съм и в ограниченията на Time-a и Memory-то(който са под Submit бутона).
Също така искам и да попитам -
/*Constraints

  • The three numbers will always be valid floating-point numbers in the range [-200, 200] .
  • Time limit: 0.1s
  • Memory limit: 16MB
    */
    Тези ограничения на времето и паметта за какво се отнасят ?

https://pastebin.com/7TzDx6cK - Ето го моето решение

Здравейте,
в тази и подобни на нея задачи трябва да вземете предвид, че входът, който е дефиниран да е число с плаваща запетая, може да е и цяло число. Както знаете 0 = 0.0, така че 0 е валиден вход за float / double.

Съответно проблемът е ако входът е 0, а вие принтите 0.0 или обратно.

Един вариант за решение е този, който е предложил вашият колега.

https://pastebin.com/hkfZmB3Q - това е друг вариант, който не използва DecimalFormat класа.

Успех,
Надя

5 Likes

Интересно решение с тези стрингове, не бих се сетил…

Благодаря за отговора!

1 Like

Здравейте,
Един от вариантите да принтирате double променлива като цяло число когато има само нули след десетичната запетая е следния:
public static String removeTrailingZerosFromDouble(double number) { BigDecimal num = BigDecimal.valueOf(number).stripTrailingZeros(); return num.toPlainString(); }

https://pastebin.com/ifC3FKL2

2 Likes

Благодаря, доста изчистено решение.
Аз търсех методи направо да сравни и трите числа. В смисъл Math.max