Вычисление конечного нуля в javascript

Как рассчитать количество завершающих нулей факториала заданного числа.

N! = 1 * 2 * 3 * 4 ... N

Любая помощь по этому поводу?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
153
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Поскольку нули возникают в результате умножения множителей 5 и 2, перебирайте все числа от 1 до входного числа, добавляя к совокупному счету пятерок и двоек всякий раз, когда эти множители обнаруживаются. Затем верните меньшее из этих двух значений:

function zeroCount(n) {
  let fives = 0;
  let twos = 0;
  for (let counter = 2; counter <= n; counter++) {
    let n = counter;
    while (n % 2 === 0) {
      n /= 2;
      twos++;
    }
    while (n % 5 === 0) {
      n /= 5;
      fives++;
    }
  }
  return Math.min(fives, twos);
}
console.info(zeroCount(6)); // 720
console.info(zeroCount(10)); // 3628800

Не думайте, что вычисление числа 2 даже необходимо, так как оно всегда будет больше 5. Достаточно просто найти число 5, и это будет количество конечных нулей.

Pushpesh Kumar Rajwanshi 27.10.2018 04:47

Это очень просто, это вам поможет.

function TrailingZero(n) 
{ 
    var c = 0; 

    for (var i = 5; n / i >= 1; i *= 5) 
        c += parseInt(n / i); 

    return c; 
}

Сообщите мне, если вам понадобится помощь в понимании этой функции.

Это неверно - он возвращает нецелочисленные значения, такие как 1.2, 1.4, 1.6 и т. д., И не пытается проверить факториал ввода.

CertainPerformance 27.10.2018 04:56

@CertainPerformance спасибо за предложение, я забыл добавить parseInt, теперь я обновил свой ответ.

vikas336 27.10.2018 18:25

Было бы очень полезно, если бы вы объяснили, как это работает - без каких-либо объяснений это совершенно не интуитивно понятно, как это правильно отвечает на вопрос, даже если это так.

CertainPerformance 27.10.2018 23:49

Другие вопросы по теме