Здравейте,
може ли някой да ми помогнe защо джъджа ми дава грешен отговор на последния кейс. 9 / 10
Локално всичко изглежда правилно.
Решение: https://pastebin.com/3ypF40N3
Задача: https://judge.telerikacademy.com/problem/03crookedstairs
Здравейте,
може ли някой да ми помогнe защо джъджа ми дава грешен отговор на последния кейс. 9 / 10
Локално всичко изглежда правилно.
Решение: https://pastebin.com/3ypF40N3
Задача: https://judge.telerikacademy.com/problem/03crookedstairs
Здравей, Васил,
Ако ред 23 от решението се замени с
input.push(BigInt(gets()));
то решението ще мине и последния 12-и тест.
Проблемът се състои в това, че числата, които трябва да се пресметнат при последния тест, са, както изглежда, твърде големи. Типът Number
в JavaScript представя 64-битови числа с плаваща запетая във формата IEEE-754. Освен дробни числа, в този формат могат да се представят без закръгляне и всички цели числа в интервала
[-253, 253].
Вън от този интервал могат да се представят точно само цели числа (между -21024+2971 и 21024-2971), които се делят на достатъчно голяма степен на 2. Например, от числата в интервала [253, 254] точно представими са само четните числа, от числата в интервала [254, 255] точно представими са само числата, които се делят на 4, и т.н. Всяко число, което не е точно представимо, се закръгля до едно от двете най-близки до него точно представими числа.
От друга страна, чрез стойности от тип BigInt могат да се представят - и да се извършват аритметични операции с - произволно големи цели числа (за сметка на по-голям разход на памет и по-дълго време за изпълненение на програмата).
Поздрави,
Иван
Благодаря! 10/10
Не се бях замислил изобщо, че проблема може да бъде решен с BigInt.
Поздрави,
Васил.