Превратить рекурсию в цикл
Как превратить рекурсию (функция c) в цикл?
function c(i, count, tour){
let result = 0;
for (let j = i; j <= count; j+=i){
if (tour-1) result+=c(j, count, tour-1);
else result++;
}
return result;
}
var a = 6;
var b = 4;
console.log(c(1, a, b));
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Дам наводку, рассписывать не стану. У вас рекусия целочисленная, т.е по факту вы пробегаетесь по 3х мерному массиву, собственно она и создает сложность в представлении поведении.
создаёте 3х мерный массив и заполняете в цикле по каждому измерению.
аналогия с факториалом у которого одно измерение f[0] = 1, f[1] = 1, ..... вы заполгяете массив до нужного вам.