Шпаргалка с хитрыми приемами для поиска кратных: заставьте свой код танцевать с числами

Блог

Привет, друг программист! Сегодня я собираюсь показать вам несколько изящных методов поиска кратных чисел с помощью JavaScript. Мы рассмотрим различные подходы к решению классической задачи поиска чисел, делящихся на 3 или 5. Итак, наденьте шляпу программиста и приступим!

Метод 1: танец с зацикливанием

Давайте начнем с простого цикла for. Мы инициализируем переменную с именем sumaзначением 0, затем перебираем числа от 3 до 999 (поскольку нам нужны числа меньше 1000). Для каждого числа мы проверяем, делится ли оно на 3 или 5, используя функцию Number.isInteger(). Если да, мы добавляем его в suma.

let suma = 0;
for (let i = 3; i < 1000; i++) {
  if (Number.isInteger(i / 3) || Number.isInteger(i / 5)) {
    suma += i;
  }
}

Метод 2: канавка по модулю

Другой способ решить эту проблему — использовать оператор по модулю (%). Мы можем проверить, делится ли число на 3 или 5, проверив, равен ли остаток от деления 0. Если да, мы добавляем число к suma.

let suma = 0;
for (let i = 3; i < 1000; i++) {
  if (i % 3 === 0 || i % 5 === 0) {
    suma += i;
  }
}

Метод 3: Застревание массива

Давайте оживим ситуацию с помощью решения на основе массива. Мы создаем пустой массив с именем multiples, а затем используем метод push()для добавления в него чисел, делящихся на 3 или 5. Наконец, мы вычисляем сумму всех элементов массива multiples, используя метод reduce().

let multiples = [];
for (let i = 3; i < 1000; i++) {
  if (i % 3 === 0 || i % 5 === 0) {
    multiples.push(i);
  }
}
let suma = multiples.reduce((acc, curr) => acc + curr, 0);

Метод 4. Математическая канавка

Если вы поклонник математических трюков, вот умное однострочное решение, использующее арифметическую прогрессию. Мы находим сумму всех чисел, делящихся на 3, сумму всех чисел, делящихся на 5, и вычитаем сумму чисел, делящихся как на 3, так и на 5, чтобы избежать подсчета дубликатов.

let n = 999;
let sumDivisibleBy3 = (3 * Math.floor(n / 3) * (Math.floor(n / 3) + 1)) / 2;
let sumDivisibleBy5 = (5 * Math.floor(n / 5) * (Math.floor(n / 5) + 1)) / 2;
let sumDivisibleByBoth = (15 * Math.floor(n / 15) * (Math.floor(n / 15) + 1)) / 2;
let suma = sumDivisibleBy3 + sumDivisibleBy5 - sumDivisibleByBoth;

Итак, у вас есть четыре разных метода поиска чисел, кратных 3 или 5, в JavaScript. Вы можете выбрать тот метод, который соответствует вашему стилю кодирования или потребностям оптимизации.

Помните, программирование похоже на танец, а поиск умных решений — это хореография, обеспечивающая оптимальную работу вашего кода. Приятного кодирования!

Вот и все, что касается этой статьи. Надеюсь, эти методы оказались для вас полезными. Оставайтесь с нами, чтобы узнать больше советов и рекомендаций по программированию!