@vakalovaa

Почему код работал слишком долго и был остановлен? Где ошибка в программе?

Задание:
Реализуйте и экспортируйте по умолчанию функцию, которая работает следующим образом:

Дано неотрицательное целое число num. Складывать все входящие в него цифры до тех пор, пока не останется одна цифра.

Для числа 38 процесс будет выглядеть так:

3 + 8 = 11
1 + 1 = 2
Результат: 2

Примеры
addDigits(10); // 1
addDigits(19); // 1
addDigits(38); // 2
addDigits(1259); // 8


Мое решение
let result = 0;
const addDigits = num => {
  let converted = String(num);
  if (converted.length > 1) { 
    return addByDigits(converted);
  } else return num; 
}
const addByDigits = num => {
for (let i = 0; num.length > i; i++) {
  result = result + num[i];
  } return addDigits(result);
} 
export default addDigits;
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Во-первых, 0 + '1' === '01'.
Во-вторых вы обнуляете result один раз, а потом только дописываете к нему цифры.
Ответ написан
Ваш ответ на вопрос

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

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