@MeMoJlor

Как сложить две девятки в массиве?

Допустим есть два массива, которые нужно сложить, без преобразовании в целое число.
let a = [9, 9, 9, 9],
b = [9, 9, 9];
return [1,0,9,9,8]

Я перебираю массив с конца
let max = Math.max(a.length - 1, b.length - 1);
for(let i = max; i >= 0; i--) {
    a[i] + b[i]
}

Но как добавить единицу, после 9+9 на следующую девятку?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Array.from(`${+a.join('') + +b.join('')}`, Number)

или

function sum(a, b) {
  const result = [];

  let overflow = false;

  for (let i = 1; i <= Math.max(a.length, b.length); i++) {
    const digit = (a[a.length - i] | 0) + (b[b.length - i] | 0) + overflow;
    overflow = digit > 9;
    result.unshift(digit % 10);
  }

  if (overflow) {
    result.unshift(1);
  }

  return result;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы