Ich habe eine Wiederholungsserie, also habe ich in Rekursionsform umgewandelt. Aber es wird angezeigt, wie maximale Stapelgröße erreicht.Was ist falsch an meinem Rekursionscode?
Derselbe Code ist arbeitet mit n = 4 als fn (4) und funktioniert korrekt, aber nicht mit höheren Werten arbeiten. Was ist das Problem, mit höheren Werten wie n = Math.pow (10, 18)
var fn = function(n){
// take initial value of f(0) = 1 & f(1) = 1
if(n===1 || n=== 0) return 1;
//calculate on basis of initial values
else if (n === -1) return (fn(1) - 3* fn(0) - gn(-1) - 2* gn(0));
else
return (3*fn(n-1) + 2 * fn(n-2) + 2* gn(n-1) + 3* gn(n-2));
};
var gn = function(n){
// take initial value of g(0) = 1 & g(1) = 1
if (n === 1 || n === 0) return 1;
//calculate on basis of initial values
else if(n === -1) return ((gn(1) - gn(0))/2);
else return (gn(n-1) + 2* gn(n-2));
};
Gibt es im obigen Code auch ein Kündigungsrisiko? –
@AnuragJain Nur wenn Sie ein negatives 'n' haben. Deine Base Cases sehen gepflegt aus. – Jashaszun
Ich war eigentlich auf der Suche nach einem schnelleren Weg, um dieses Problem zu lösen. Kann ich in meinem Fall Memo oder Iteration verwenden? –