Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2018, 00:14
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

как сумму арифметической прогрессии с определенным шагом
Подскажите, как подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for c пустым телом цикла?
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2018, 12:10
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

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, 25.03.2018 в 12:16.
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2018, 14:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

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
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2018, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

Подскажите, как подсчитать сумму арифметической прогрессии от min до max c шагом step НЕ!!! используя цикл?
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2018, 09:54
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

рони, проверку на корректность введенного числа автор и сам может дописать.
Сообщение от рони
Подскажите, как подсчитать сумму арифметической прогрессии от 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));
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2018, 10:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

Сообщение от Nexus
Мб. так?
да, в целом верно, n возможно надо уточнить ... нужно проверять
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2018, 11:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

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
Ответить с цитированием
  #8 (permalink)  
Старый 26.03.2018, 11:29
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

рони,
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
Ответить с цитированием
  #9 (permalink)  
Старый 26.03.2018, 12:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

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
Ответить с цитированием
  #10 (permalink)  
Старый 26.03.2018, 12:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

рони, так, вроде бы, правильно
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));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
как расчитать сумму массива вита Общие вопросы Javascript 1 19.05.2011 14:22
как посчитать сумму выбранных элементов checkbox nikimak92 Общие вопросы Javascript 9 01.06.2010 10:16
как тегу option с определенным value присвоить selected kichSman Общие вопросы Javascript 2 24.10.2009 03:14