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

143
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"> в виде форматированного текста? Желательно без костылей...

129
Объект Day в Javascript

Объект Day в Javascript

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

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

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

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

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

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

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

102