Защо не се получава? Грешка тестове на изпит 27.07 - задача 1
Здравейте! Ще ви бъда благодарна, ако ми обясните къде е грешката ми в решението на тази задача: link в Judge S. Това е решението ми: link. Получавам грешка на 3-ти и 10-ти тест, въпреки че output-ът ми е какъвто трябва да бъде... Тестовете са: [5,10] & [999999,1000000] - тестове. При авторското решение се получават 100/100т.
п.с. Чудя се дали грешката се получава, тъй като при тест 3 е:
<table><tr><th>Num</th><th>Square</th><th>Fib</th></tr><tr><td>5</td><td>25</td><td>yes</td></tr><tr><td>6</td><td>36</td><td>no</td></tr><tr><td>7</td><td>49</td><td>no</td></tr><tr><td>8</td><td>64</td><td>yes</td></tr><tr><td>9</td><td>81</td><td>no</td></tr><tr><td>10</td><td>100</td><td>no</td></tr></table>
т.е. някои редове от таблицата не са разположени както трябва.
По същият начин е и 10-ти тест и въпреки това с авторското решение се получава.
Благодаря предварително!
Аз и на друга греда се натъкнах :) Колеги, когато искат от вас да закръглявате числата до 2 цифри след десетичната и за това използвате .fixed(2) имайте предвид, че числото автоматично се преобразува в string. После ако искате това число да го сравнявате с друго то непременно пак си го кастнете числото към Number тип.
Получи се, благодаря :)
Благодаря ти за съвета, наистина ще е полезен! :)
Никола, JS автоматично ги каства към числа. :)
Ако не вярваш, напиши в node "2.22" > "2.21" и виж резултата! :)
Александър , пробвай в конзолата '13.00' > '2.2' и ми напиши резултата :)
Другата странност в JavaScript, заради която не ми даваше пълните точки на задача е:
var a = Number.MAX_VALUE;
var b = -500;
b > a връща false.... и за да работи коректно трябва
a = Number.NEGATIVE_INFINITY
Прав си! Само ако едното число е в Number тип се получава автоматичното кастване.
При мен:
500 > Number.NEGATIVE_INFINITY -> true
500 > Number.MIN_VALUE -> true
500 > Number.MAX_VALUE -> false
Я пробвай с -500 и виж странностите на JavaScript. Заради тази странност доста псувах по-рано днес :)
П.С. В предния коментар в примера вместо -500 бях написал 500.
-500 > Number.MIN_VALUE -> false
0> Number.MIN_VALUE -> false
0.00000000000000001 > Number.MIN_VALUE -> true
Note: MIN_VALUE is the value closest to 0. The most negative number is the negative MAX_NUMBER.
То си пишело... ама ние не сме прочели! :D И все пак наистина е доста объркващо...
Много тъпо са го измислили :)
Note: MIN_VALUE is the value closest to 0. The most negative number is the negative MAX_NUMBER.
Можеше да го направят MIN_VALUE да си е по подразбиране MAX_NUMBER с минус.