Для первого теста sumDigits(1246172836817263875) в ответе указано 76. Если сложить все в ручную, получится 87.
А ведь и правда 87. Хотя в коде вроде все логично написано, выдаёт 76, а в ручную 87. Может особенность JS? Где то теряется одна цифра?
Проверил Именно число: 12461728368172638 все ок Но потом начинается магия и уже выдаёт ошибку в сложении если добавлять цифры. 12461728368172638 = 75 (все ок) 124617283681726387 = 75 (не ок) 1246172836817263875 = 76 (не ок)
Вот вам ответ на вашу загадку: "Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers" Число взятое для теста больше максимального значения для integers. Чтобы получить ожидаемый вами 87 используйте BigInt -- sumDigits(1246172836817263875n)
Действительно! Слишком большие числа "урезаются" еще на этапе передачи в функцию. Попробовал решить проблему использованием BigInt, в том числе используя его при передаче аргумента в функцию. Погрешность значительно сократилась, но всё же осталась. Поэтому единственным выходом поддержания корректности тесткейсов и примеров вызова функции вижу уменьшение в них числовых значений. Так и сделано.