Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

2가지 이상의 방법을 사용하여 숫자의 자릿수 더하기 JavaScript

<시간/>

한 숫자로 변환될 때까지 숫자를 반복적으로 합산하는 JavaScript 함수를 작성해야 합니다.

우리는 두 가지 방법으로 이 문제를 해결할 것입니다 -

방법 1:루프 사용

이 솔루션은 while 루프를 사용하여 숫자의 자릿수를 재귀적으로 더합니다.

예시

const num = 123456;
const addDigits = (num = 1) => {
   let sum = num;
   while(sum % 10 !== sum){
      let sum1 = 0;
      while(sum > 0){
         sum1 += sum % 10;
         sum = Math.floor(sum / 10);
      }
      sum = sum1;
   };
   return sum;
};
console.log(addDigits(num));

방법 2:일정 시간 솔루션 사용(O(1) 시간 복잡도)

이 솔루션은 수학의 합동 공식을 사용하며 독자는 이 솔루션을 더 잘 이해하기 위해 이 공식을 탐색하는 것이 좋습니다.

예시

const num = 123456;
const addDigits = (num = 1) => {
   let predicate = (num - 1) % 9;
   return ++predicate;
};
console.log(addDigits(num));

출력

그리고 두 방법 모두에 대한 콘솔의 출력은 -

3