Я решаю задачу Эйлера, где вам нужно найти сумму целых чисел факториала. так например 10! равно 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. Я написал это, используя библиотеку big-int для работы с большими числами.
factorialize =(num)=> {
if (num < 0) {
return -1;
}
else if (num == 0) {
return 1;
}
else {
return (num * factorialize(num - 1));
}
}
findFactorialSum=(x)=>{
let total=0;
let result = bigInt(factorialize(x));
// let result=factorialize(x).toString().split("").map(el => parseInt(el));
// result.split("");
let converted = result.toString().split("").map(el => parseInt(el));
console.log(converted);
for(let i=0;i<=converted.length-1;i++)
{
total=total+converted[i]
}
console.log(total);
return total;
}
это работает для небольших факториалов и дает правильные ответы, но как только вы go для чего-то большего, чем 12, он дает неправильные ответы, например, для 100 я получаю 683, но ответ, согласно сайту, должен быть 648> <. Я предполагаю, что большая библиотека int, которую я использую, возвращает неправильное число, но она работала для меньших чисел, поэтому я не вижу, в чем может быть проблема. </p>