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

JavaScript의 범위 내 암스트롱 번호

<시간/>

암스트롱 수:양의 정수는 다음과 같은 경우 암스트롱 수(n차)라고 합니다.

abcd... = a^n + b^n + c^n + d^n + ...

범위를 지정하는 정확히 두 개의 숫자 배열을 취하는 JavaScript 함수를 작성해야 합니다.

이 함수는 해당 범위에 속하는 모든 Armstrong 숫자의 배열을 반환해야 합니다(Armstrong인 경우 시작 및 끝 숫자 포함).

먼저 Armstrong 숫자를 감지하는 함수를 별도로 작성한 다음 범위를 반복하여 원하는 숫자로 배열을 채웁니다.

예시

다음은 코드입니다 -

const range = [11, 1111];
const isArmstrong = (num) => {
   const numberOfDigits = ('' + num).length;
   let sum = 0;
   let temp = num;
   while (temp > 0) {
      let remainder = temp % 10;
      sum += remainder ** numberOfDigits;
      temp = parseInt(temp / 10);
   }
   return sum === num;
};
const findAllArmstrong = ([start, end]) => {
   const res = [];
   for(let i = start; i <= end; i++){
      if(isArmstrong(i)){
         res.push(i);
      };
   };
   return res;
};
console.log(findAllArmstrong(range));

출력

다음은 콘솔 출력입니다 -

[ 153, 370, 371, 407 ]