DEV Community

Cover image for repeatedly add all of its digits until the result has only one digit
chandra penugonda
chandra penugonda

Posted on

repeatedly add all of its digits until the result has only one digit

We're provided a positive integer num. Can you write a method to repeatedly add all of its digits until the result has only one digit?

Here's an example: if the input was 49, we'd go through the following steps:

Example:

input: 49
output: 4

// start with 49
4 + 9 = 13
1+3 = 4

Enter fullscreen mode Exit fullscreen mode

Solution 1

function sumDigits(num) {
  function getSum(num) {
    let _num = num;
    let result = 0;
    while (_num > 0) {
      result += _num % 10;
      _num = Math.floor(_num / 10);
    }
    return result;
  }
  while (num > 9) {
    num = getSum(num);
  }
  return num
}

console.log(sumDigits(49));

Enter fullscreen mode Exit fullscreen mode

Solution 2

function sumDigits(num) {
  while (num > 9) {
    num = num
      .toString()
      .split("")
      .reduce((a, b) => a + parseInt(b), 0);
  }
  return num;
}

console.log(sumDigits(49));
Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay