Loading...
asyamincheva avatar asyamincheva 20 Точки

Защо не се получава? Грешка тестове на изпит 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-ти тест и въпреки това с авторското решение се получава.

Благодаря предварително!

0
JavaScript Fundamentals 22/11/2014 22:38:18
Dominik avatar Dominik 82 Точки
Best Answer

Здравей,

трябва да кастнеш 'start'  и 'end' към Number и ще заработи без проблеми 100/100 (пробвах го).

За жалост немога да ти кажа с точност причината, но доста колеги се натъкнаха (включително и аз) на този проблем така, че на изпита съветвам всички да си кастват числата към Number за да нямат проблеми.

Успех.

1
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Аз и на друга греда се натъкнах :) Колеги, когато искат от вас да закръглявате числата до 2 цифри след десетичната и за това използвате .fixed(2) имайте предвид, че числото автоматично се преобразува в string. После ако искате това число да го сравнявате с друго то непременно пак си го кастнете числото към Number тип.

0
asyamincheva avatar asyamincheva 20 Точки

Получи се, благодаря :)

0
asyamincheva avatar asyamincheva 20 Точки

Благодаря ти за съвета, наистина ще е полезен! :)

0
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Никола, JS автоматично ги каства към числа. :)

Ако не вярваш, напиши в node "2.22" > "2.21" и виж резултата! :)

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Александър , пробвай в конзолата '13.00' > '2.2' и ми напиши резултата :)

Другата странност в JavaScript, заради която не ми даваше пълните точки на задача е:

var a = Number.MAX_VALUE;

var b = -500;

b > a  връща false.... и за да работи коректно трябва

a = Number.NEGATIVE_INFINITY

 

0
23/11/2014 00:13:03
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Прав си! Само ако едното число е в Number тип се получава автоматичното кастване. 

При мен:
500 > Number.NEGATIVE_INFINITY -> true

500 > Number.MIN_VALUE -> true

500 > Number.MAX_VALUE -> false

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Я пробвай с  -500 и виж странностите на JavaScript. Заради тази странност доста псувах по-рано днес :)

П.С. В предния коментар в примера вместо -500 бях написал 500.

0
23/11/2014 00:13:31
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

-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 И все пак наистина е доста объркващо...

0
23/11/2014 00:20:06
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Много тъпо са го измислили :)

Note: MIN_VALUE is the value closest to 0. The most negative number is the negative MAX_NUMBER.

Можеше да го направят MIN_VALUE да си е по подразбиране MAX_NUMBER с минус.  

 

 

1
23/11/2014 00:23:29
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.