как сумму арифметической прогрессии с определенным шагом
Подскажите, как подсчитать сумму арифметической прогрессии от 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)); |
Nexus,
для варианта пост №8 min,max,step, fn, test, test == fn -5,8,9,12,-1,false 5,7,4,14,5,false 7,9,18,32,7,false -1,18,1,170,170,true 9,34,4,184,147,false 4,9,16,24,4,false -4,21,18,42,10,false -7,20,18,33,4,false 8,33,29,45,8,false -2,17,12,30,8,false -2,12,26,22,-2,false 5,18,9,42,19,false -1,22,18,51,16,false 9,19,24,42,9,false 3,15,2,63,63,true 7,27,13,60,27,false -7,13,1,63,63,true -5,21,2,112,112,true 0,7,9,9,0,false 5,33,21,78,31,false 2,9,28,32,2,false 0,11,27,27,0,false -9,13,24,6,-9,false 9,30,1,429,429,true -2,17,17,45,13,false 4,32,1,522,522,true -4,21,7,50,26,false 8,14,20,36,8,false 3,7,29,35,3,false 8,37,9,130,86,false 3,8,24,30,3,false 0,28,18,54,18,false -3,13,4,25,25,true 2,29,8,90,56,false -4,5,27,19,-4,false 5,9,24,34,5,false -9,2,3,-15,-18,false -5,23,5,70,45,false 7,21,11,54,25,false 9,33,2,273,273,true 4,31,26,90,34,false 8,28,16,72,32,false -6,19,2,98,78,false -2,-2,11,-2,-2,true 8,9,3,19,8,false -7,22,27,60,13,false -4,16,20,12,12,true -5,3,13,3,-5,false -8,1,27,11,-8,false -9,16,18,27,0,false 1,15,9,30,11,false 5,8,28,38,5,false 8,29,2,228,198,false 0,2,21,21,0,false 4,23,10,42,18,false 4,5,3,11,4,false -5,19,1,175,175,true 7,27,24,38,7,false 1,5,25,27,1,false -3,4,1,4,4,true -3,1,3,0,-3,false 0,3,14,14,0,false 3,8,27,33,3,false -4,19,3,72,52,false -8,-2,26,10,-8,false -3,20,15,36,9,false 1,5,12,14,1,false 6,26,2,176,176,true -1,7,1,27,27,true 0,19,14,42,14,false -5,-5,20,-5,-5,true -1,10,4,20,9,false -6,-3,1,-18,-18,true 3,31,29,35,3,false 6,22,1,238,238,true 4,29,15,57,23,false 3,5,15,21,3,false -1,11,22,20,-1,false -6,15,14,24,2,false 5,9,24,34,5,false 1,1,17,1,1,true 7,23,1,255,255,true -7,17,29,15,-7,false 6,34,1,580,580,true -6,22,18,36,6,false 0,13,18,18,0,false -9,8,13,12,-5,false 9,31,10,96,57,false 0,21,24,24,0,false 0,16,26,26,0,false -5,9,20,10,-5,false -9,19,25,48,7,false -1,10,7,18,5,false -7,21,11,38,12,false 8,12,10,26,8,false 4,14,1,99,99,true -4,-1,11,3,-4,false -7,6,17,3,-7,false 8,10,17,33,8,false 1,2,11,13,1,false |
Цитата:
:victory: -8,11,20,-8,-8,true 3,11,12,3,3,true -4,17,22,-4,-4,true 3,27,17,23,23,true -7,8,1,8,8,true -6,23,20,8,8,true 5,23,17,27,27,true 7,8,5,7,7,true -7,-4,27,-7,-7,true -5,23,21,11,11,true -5,19,18,8,8,true 9,23,5,42,42,true 2,11,10,2,2,true 2,6,1,20,20,true 0,0,25,0,0,true -7,12,28,-7,-7,true -2,12,10,6,6,true 2,24,25,2,2,true -9,7,3,-9,-9,true 2,20,8,30,30,true -9,-6,10,-9,-9,true 6,26,17,29,29,true -7,22,23,9,9,true -1,3,17,-1,-1,true -3,22,3,81,81,true 8,14,17,8,8,true 8,35,17,33,33,true 4,28,14,22,22,true 6,7,2,6,6,true 6,7,18,6,6,true 7,11,13,7,7,true 4,31,22,30,30,true 5,24,20,5,5,true 4,29,29,4,4,true -7,2,19,-7,-7,true -8,-4,18,-8,-8,true 0,4,8,0,0,true -1,3,25,-1,-1,true 6,22,16,28,28,true 6,17,1,138,138,true -8,-3,25,-8,-8,true 2,25,20,24,24,true -6,20,7,18,18,true -7,8,16,-7,-7,true -3,8,22,-3,-3,true 3,21,29,3,3,true 8,21,3,70,70,true 8,16,29,8,8,true 3,31,1,493,493,true -7,14,26,-7,-7,true 5,13,28,5,5,true -2,27,29,25,25,true 3,26,26,3,3,true -9,10,16,-2,-2,true 4,9,11,4,4,true 6,7,24,6,6,true 1,16,1,136,136,true 7,8,1,15,15,true -1,24,23,21,21,true 9,34,21,39,39,true -7,19,19,5,5,true 8,25,24,8,8,true -5,7,14,-5,-5,true 0,10,13,0,0,true -2,26,6,50,50,true 3,10,23,3,3,true 1,8,12,1,1,true 0,24,24,24,24,true 7,9,7,7,7,true -8,5,16,-8,-8,true 3,28,22,28,28,true -5,7,22,-5,-5,true -4,20,4,56,56,true -4,-1,5,-4,-4,true 5,27,8,39,39,true 0,17,28,0,0,true -8,5,14,-8,-8,true 0,26,15,15,15,true 5,6,23,5,5,true -7,9,22,-7,-7,true -4,20,1,200,200,true 7,33,7,70,70,true -2,17,29,-2,-2,true 0,23,4,60,60,true -4,4,17,-4,-4,true 4,29,23,31,31,true 7,9,24,7,7,true -3,11,15,-3,-3,true 7,21,6,39,39,true -4,12,20,-4,-4,true -1,13,9,7,7,true 7,7,4,7,7,true 6,19,10,22,22,true -4,14,15,7,7,true -4,6,26,-4,-4,true -2,6,9,-2,-2,true 2,24,25,2,2,true -4,6,13,-4,-4,true 8,30,4,108,108,true -9,-2,6,-12,-12,true |
Nexus,
почти одинаковый код у нас, я только убрал все числа, кроме одного :) из кода. (исключительно по желанию, результат выше уже достаточен) |
сумма арифметической прогрессии
Nexus,
function fun(min, max, step) { var n = (max - min) / step | 0; return (min + n * step / 2) * ++n; }; alert(fun(9,15,5)); |
рони, :thanks:
|
Часовой пояс GMT +3, время: 14:54. |