Bardzo proste ćwiczenie na wyrobienie się w programowaniu – dodajemy dwie liczby rekurencyjnie i iteracyjnie. Do dzieła.
Reukrencja:
function sumRec(x, y){
if(x === 0 || y === 0)
return Math.max(x,y);
return sumRec(x+1, y-1);
}
console.log(sumRec(4,15)); //19
console.log(sumRec(15,4)); //19
Iteracja:
function sumIter(x, y){
if(x === 0 || y === 0)
return Math.max(x,y);
let bigger = Math.max(x, y);
let smaller = Math.min(x, y);
while(smaller > 0){
bigger++;
smaller--;
}
return bigger;
}
Mini-optymalizacja rekurencji (mniej wywołań):
function sumRec(x, y){
if(x === 0 || y === 0)
return Math.max(x,y);
if(y > x)
return sumRec(y, x);
return sumRec(x+1, y-1);
}
console.log(sumRec(4,15)); //19
console.log(sumRec(15,4)); //19