Увеличение шага инкремента на каждой итерации

У меня есть задача написать код на JS, который принимает число N (определяющее число входных данных) и число М (обыкновенное число). Нужно посчитать количество чисел, которые больше М, но считать не все числа, а на каждом шаге итерации пропускать на одно число больше (то есть проверять так: 1, пропуск, 3, два пропуска, 6 и тд.). Как можно сделать такой код? Я смог сделать так, чтобы числа проверялись на каждой итерации, но как сделать шаг итерации я не могу придумать. Мой код:

function countNumbers() {
  const n = prompt('Введите число записей: ', )
  const m = prompt('Введите число M: ', )
  let counter = 0

  for (let i = 0; i < +n; i++) {
    let num = prompt('Введите число: ', )
    if (num > +m) {
      counter++
    }
  }
  return counter
}

console.log(countNumbers())

Заранее спасибо за помощь


Ответы (1 шт):

Автор решения: Mark Shevchenko

В операторе for в третьем блоке можно использовать любое выражение для изменения переменной цикла. Можно написать i *= 2, чтобы на каждом шаге увеличивать переменную вдвое.

Поэтому, в вашем случае можно так:

let skip = 1;
for (let i = 1; i < n; i += skip) {
  console.log(i);
  skip += 1;
}

Результат:

1
3
6
10
15
...
→ Ссылка