Увеличение шага инкремента на каждой итерации
У меня есть задача написать код на 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 шт):
В операторе for в третьем блоке можно использовать любое выражение для изменения переменной цикла. Можно написать i *= 2, чтобы на каждом шаге увеличивать переменную вдвое.
Поэтому, в вашем случае можно так:
let skip = 1;
for (let i = 1; i < n; i += skip) {
console.log(i);
skip += 1;
}
Результат:
1
3
6
10
15
...