Добрый день! Нужен совет по поводу работы с большими числами?
Есть следующий код в котором надо найти количество нулей выражения
a, где 23! - это факториал числа 23, 24!! - это факториал числа, который выглядит следующим образом: 24!! = 2*4*6*8*10*12*14*16*18*20*22*24, для 25!! - наоборот, произведение нечетных чисел. Каким образом можно избавиться от экспоненты в степени, при этом не используя сторонних библиотек и т.д?
var a = '23!*24!!*25!*26!!*27!!';
var arr = a.split('*');
var res = [];
var multi = 1;
for (var k=0; k<arr.length; k++){
var val = 1;
if (arr[k].substring(arr[k].length-2) == '!!'){
if (parseInt(arr[k])%2 == 0){
for(var l = 2; l<=parseInt(arr[k]); l=l+2){
val *= l;
}
res.push(val);
}
else {
for(var h = 1; h<=parseInt(arr[k]); h=h+2){
val *= h;
}
res.push(val);
}
}
else {
for (var i=2; i<=parseInt(arr[k]); i++){
val *= i;
}
res.push(val);
}
}
for (var g=0; g<res.length; g++){
multi *= res[g];
}
var zeros = String(multi).split('');
var count = 0;
for (var j=zeros.length-1; j>=0; j--){
if(zeros[j]==0){
count++;
}
else if(zeros[j]!=0){
break;
}
}
console.log(zeros);
console.log(count);