как сумму арифметической прогрессии с определенным шагом
Подскажите, как подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for c пустым телом цикла?
|
function fn(n){ for(var s=i=1;i<n;s+=(i+=3)){}; //Или так //for(var i=1,s=i;i<n;i+=3,s+=i){}; return s; } alert(fn(7)); |
Nexus,
:-? function fn(n){ for(var s=i=1;i<n;s+=(i+=3)){}; //Или так //for(var i=1,s=i;i<n;i+=3,s+=i){}; return s; } alert(fn(5) == fn(7) );//??? 1 + 4 == 1 + 4 + 7 |
Подскажите, как подсчитать сумму арифметической прогрессии от min до max c шагом step НЕ!!! используя цикл?
:) |
рони, проверку на корректность введенного числа автор и сам может дописать.
Цитата:
function fn(min,max,step){ var n=Math.ceil((max-min)/step); return ((2*min+step*(n-1))/2*n); }; alert(fn(1,7,3)); |
Цитата:
|
Nexus,
function fn(min,max,step){ var n=Math.ceil((max-min)/step); return ((2*min+step*(n-1))/2*n); }; alert(fn(1,7,2)); // 9 ??? 1 + 3 + 5 + 7 = 16 |
рони,
function fn(min,max,step){ var n=1+Math.ceil((max-min)/step); return ((2*min+step*(n-1))/2*n); }; alert(fn(1,10,3));//22 ~ 1+4+7+10=22 |
Nexus,
:-? function fn(min,max,step){ var n=1+Math.ceil((max-min)/step); return ((2*min+step*(n-1))/2*n); }; alert(fn(9,15,5));//42 ???? 9 + 14 = 23 |
рони, так, вроде бы, правильно
function fn(min,max,step){ var n=1+Math.floor((max-min)/step); return ((2*min+step*(n-1))/2*n); }; alert(fn(9,15,5)); |
Часовой пояс GMT +3, время: 09:05. |