• Как вывести первые N элементов последовательности 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ...?

    0xD34F
    @0xD34F
    Допустим, выведены единица и все двойки: 1, 2, 2 - всего 1 + 2 = 3 числа. А если единица, двойки и все тройки: 1, 2, 2, 3, 3, 3 - всего 1 + 2 + 3 = 6 чисел. Если добавить четвёрки: 1 + 2 + 3 + 4 = 10 чисел. Ну и так далее - это сумма арифметической прогрессии. Если текущее значение счётчика цикла равно сумме натуральных чисел от 1 до текущего выводимого - начинаем выводить следующее число:

    const N = чему-то там равно;
    
    for (let i = 1, num = 1; i <= N; i++) {
      console.log(num);
      if (i === (1 + num) * num / 2) {
        num++;
      }
    }

    UPD. Можно пойти чуть дальше, и вспомнить про квадратные уравнения - в коде выше, в условном операторе, это вот оно. Известно значение счётчика - надо найти число. Так что нет проблем и формулу элемента последовательности вывести:

    for (let i = 1; i <= N; i++) {
      console.log(Math.ceil((Math.sqrt(1 + 8 * i) - 1) / 2));
    }
    Ответ написан
    1 комментарий
  • Почему not defined?

    <span onclick="plus(this);"></span>
    $(document).ready(function(){
      window.plus = (el) => {
        var cartcount =$(el).parents('.cart-count').find('input').val();
        $(el).parents('.cart-count').find('input').val(+cartcount+1);	
        $(el).parents('.cart-count').find('input').change();				
      }
    })
    Ответ написан
    2 комментария