Съвети за JavaScript
Как да изчислим най-малкото общо кратно в JavaScript
Въведение в LCM и как да го внедрите в JavaScript
Проблемът днес е за изчисляване на най-малкото общо кратно на набор от числа. В математиката най-малкото общо кратно на две цели положителни числа a
и b
, означено с LCM(a,b)
, е най-малкото естествено число, което се дели както на a
, така и на b
. Но нека започнем с дефиницията на проблема:
Проблемът: Най-малкото общо кратно
връзка към kata
Напишете функция, която изчислява най-малкото общо кратно на своите аргументи; всеки аргумент се приема за неотрицателно цяло число. В случай, че няма аргументи (или предоставеният масив в компилирани езици е празен), върнете 1
. Ако някой аргумент е 0
, върнете 0
.
Решението
За да реша проблема, мога да следвам инструкциите в Wikipedia:
По същество това е въпрос на използване на най-големия общ делител. Но как се изчислява най-големият общ делител? Говорих за това преди няколко дни в друга публикация:
const gcd = (x, y) => (y === 0 ? x : gcd(y, x % y));
Следователно проблемът за изчисляване на най-малкото общо кратно в JavaScript може да бъде решен само в два реда:
const gcd = (x, y) => (y === 0 ? x : gcd(y, x % y)); const lcm = (...n) => n.reduce((x, y) => (x * y) / gcd(x, y));
Благодаря за четенето! Очаквайте още.
Не пропускайте следващата ми статия — регистрирайте се за моя среден имейл списък
Повече съдържание в PlainEnglish.io.
Регистрирайте се за нашия безплатен седмичен бюлетин. Следвайте ни в Twitter, LinkedIn, YouTube и Discord.
Искате да мащабирате стартирането на своя софтуер? Вижте Circuit.