Just nu i M3-nätverket
Gå till innehåll

Funktion för summering av en talserie från a till b


Jompan

Rekommendera Poster

Jag försöker skapa en funktion som ska hitta summan för talserien 23 till 94 (Således ska svaret vara 4212).

 

Jag har försökt med en forloop, så här:

var low,high,sum,i;

var sumRangeNumbers = function(low,high){

for(i=low; i<=high; i++){
	i=i+1;   // Ökar värdet med 1 för varje loop
	sum+=i;  // Summa vid loppstopp; 94
}
return sum;
}

sum = sumRangeNumbers(23,94);	

Men jag får bara svaret "null"

 

Någon som kan hjälpa till?

 

Länk till kommentar
Dela på andra webbplatser

du deklarerar variabler men initierar inte dem (Första raden)

 

Längre ner så blir alla tal utom sum som fortfarande är 'undefined'

 

Du plusar 'undefined' med tal och det är därför det blir så.

 

Ändra första raden till

var low = high = sum = i = 0;
Länk till kommentar
Dela på andra webbplatser

i används inuti funktionen

low+high parametrar som används inuti funktionen

sum används oxå inuti funktionen. 

 

Du slösar minne när du deklarerar dem utanför funktionen. Sedan kommer funktionen returnera felvärden om den anropas flera gånger efter varann för i andra gången så är sum inte lika med 0. 

 

Så ska det se ut

var sumRangeNumbers = function(low,high){
var sum = 0;
for(var i=low; i<=high; i++){
	i=i+1;   // Ökar värdet med 1 för varje loop
	sum+=i;  // Summa vid loppstopp; 94
}
return sum;
}

var result = sumRangeNumbers(23,94);
Länk till kommentar
Dela på andra webbplatser

Vänta nu, loopen ökar ju redan i med 1 varje itirering, så ska man väl inte öka en gång till?!

 

därför; ta bort i=i+1 innuti loopen

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...