Hallo,
für eine Übungsaufgabe alla „wandle Rekursion in nicht-Rekursion-mit-Schleife um“ ganz nett, allerdings ist das ganz doch recht langsam, egal ob rekursiv oder Schleife. Soweit ich das sehe handelt es sich hier um die Summe der geraden ganzen natürlichen Zahlen, wenn n gerade ist, und um die Summe der ungeraden ganzen natürlichen Zahlen, wenn n ungerade ist. Daher ist mein Vorschlag für eine lineare Lösung:function f(n)
{
var nn = Math.round( parseInt( n ) / 2 ); // Obergrenze für Summenformel(n) bestimmen
var ret = 0;
if ( nn > 0 )
{
if ( 0 == parseInt( n ) % 2 ) // gerade ganze Zahl
{
ret = nn * ( nn + 1 );
}
else // ungerade ganze Zahl
{
ret = nn * nn;
}
}
else if ( nn ret = 0!!
return ret;
}Gruß
Volkmar
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]