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

재귀 적으로 자릿수 합을 한 자리 숫자로 줄이십시오. JavaScript

<시간/>

숫자를 받아서 결과가 한 자리 숫자가 아닐 때까지 계속 숫자를 더하는 함수를 작성해야 합니다. 한 자리 숫자가 있으면 반환합니다.

이에 대한 코드는 매우 간단합니다. 숫자가 9보다 크거나 -9보다 작을 때까지 숫자를 계속 추가하는 재귀 함수를 작성합니다(논리를 두 번 작성할 필요가 없도록 부호를 별도로 처리합니다)

예시

const sumRecursively = (n, isNegative = n < 0) => {
   n = Math.abs(n);
   if(n > 9){
      return sumRecursively(parseInt(String(n).split("").reduce((acc,val) => {
         return acc + +val;
      }, 0)), isNegative);
   }
   return !isNegative ? n : n*-1;
};
console.log(sumRecursively(88));
console.log(sumRecursively(18));
console.log(sumRecursively(-345));
console.log(sumRecursively(6565));

출력

콘솔의 출력은 -

7
9
-3
4