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

JavaScript 재귀를 사용하여 일련의 작업이 주어진 숫자를 산출하는지 확인하십시오.

<시간/>

숫자 1에서 시작하여 반복적으로 5를 더하거나 3을 곱하면 무한한 양의 새로운 숫자가 생성될 수 있습니다. 숫자가 주어지면 해당 숫자를 생성하는 덧셈과 곱셈의 시퀀스를 찾으려고 시도하는 함수를 작성해야 합니다. 그런 시퀀스가 ​​있는지 여부에 따라 부울 값을 반환합니다.

예를 들어,

숫자 13은 먼저 3을 곱한 다음 5를 두 번 더하여 도달할 수 있으므로 함수는 13에 대해 true를 반환해야 합니다. 반면 숫자 15에는 전혀 도달할 수 없으므로 함수는 15에 대해 false를 반환해야 합니다.

접근

원하는 솔루션으로 이어지는 모든 가능성을 반복적으로 시도하는 재귀적 접근 방식을 사용할 것입니다. 이 접근 방식의 코드는 -

예시

const sequenceExists = (num, curr = 1) => {
   if(curr > num){
      return false;
   };
   if(curr === num){
      return true;
   };
   return sequenceExists(num, curr+5) || sequenceExists(num, curr*3);
};
console.log(sequenceExists(18));
console.log(sequenceExists(15));
console.log(sequenceExists(32));
console.log(sequenceExists(167));
console.log(sequenceExists(17));
console.log(sequenceExists(1119));

출력

콘솔의 출력은 다음과 같습니다. -

true
false
true
true
false
true