нужно найти наибольший общий делитель в javascript [закрыт]

148
29 июля 2019, 20:20

Подскажите пожалуйста где здесь ошибка. Вот код.

const gcd = (m, n) => { 
    let a, b, c, d; 
    if (m > n) { 
      a = m % n; 
      b = n % a; 
      while (c !== 0 || d !== 0) { 
        c = a % b; 
        d = b % c; 
        a = c; 
        b = d; 
      } 
      if (c == 0) { 
        return b; 
      } else if (d == 0) { 
        return c; 
 
      } else if (n > m) { 
        a = n % m; 
        b = m % a; 
        while (c !== 0 || d !== 0) { 
          c = a % b; 
          d = b % c; 
          a = c; 
          b = d; 
        } 
 
        if (c == 0) { 
 
          return b; 
        } else if (d == 0) { 
 
          return c; 
 
        } 
      } else { 
        return m; 
      } 
 
    }; 
     
console.log(gcd(16,18));

Answer 1

Ваш код нечитабелен. Оформите его должным образом, пожалуйста.

Снизу универсальное решение для нахождения НОД(Наибольший общий делитель) 2-х и более чисел на javascript.

function NOD () {
  for (var x = arguments[0], i = 1; i < arguments.length; i++) {
    var y = arguments[i];
    while (x && y) {
      x > y ? x %= y : y %= x;
    }
    x += y;
  }
  return x;
}
console.log([
  NOD( 10, 15 ),
  NOD( 111, 555, 407 ),
  NOD( 100, 200, 300, 400, 2225, 175, 19873625 ),
].join( '\n' )); 
// Output 5, 37, 25

Если Вам удобнее, то можете посмотреть код на Codepen: ссылка

Answer 2

Да, код трудно понять, поэтому предлагаю вам свою реализацию с помощью рекурсии:

function NOD (x, y) { 
	if (y > x) return NOD(y, x); 
	if (!y) return x; 
	return NOD(y, x % y); 
} 
console.log(NOD(10, 25));

READ ALSO
Как отобразить код элемента в виде форматированного текста

Как отобразить код элемента в виде форматированного текста

Как с помощью JS, или JQuery можно отобразить в теге <pre> тег и содержимое тега <script id="js"> в виде форматированного текста? Желательно без костылей...

136
Объект Day в Javascript

Объект Day в Javascript

Здравствуйте есть код калькулятора в нем есть обЪект с датом в цикле он работает а вне цикла нет не могу понять в чем пробелма вот код который...

126
Проверка условия на false

Проверка условия на false

Как корректно проверить если элемент не содержит например класс active? Как правильнее делать?

146
Можно ли использовать for в render

Можно ли использовать for в render

Хочу пройтись и данным и вывести все элементыНо жалуется на Data

106