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

2 JavaScript의 키 키보드 문제

<시간/>

다음 상황을 가정하십시오 -

처음에는 메모장에 하나의 문자 'A'만 표시됩니다. 각 단계에 대해 이 메모장에서 두 가지 작업을 수행할 수 있습니다.


  • 모두 복사 − 메모장에 있는 모든 문자를 복사할 수 있습니다(부분 복사 불가).

  • 붙여넣기 − 저번에 복사한 문자를 붙여넣을 수 있습니다.

우리는 숫자를 취하는 JavaScript 함수를 작성해야 합니다. 유일한 인수로 num이라고 부르겠습니다. 우리 함수는 'A'번 인쇄하는 데 필요한 최소 단계 수(모두 복사 또는 붙여넣기)를 계산하고 반환하는 데 필요합니다.

예를 들어 -

입력 번호가 -

인 경우
const num = 3;

그러면 출력은 다음과 같아야 합니다. -

const output = 3;

왜냐하면, 단계는 -

  • 모두 복사(결과:'A')

  • 모두 붙여넣기(결과:'AA')

  • 모두 붙여넣기(결과:'AAA')

예시

이에 대한 코드는 -

const num = 3;
const minimumSteps = (num = 1) => {
   let [curr, copy, steps] = [1, 0, 0];
   while(curr != num){
      if((copy < curr) && ((num - curr) % curr) == 0) {
         copy = curr;
      }else{
         curr += copy;
      };
      steps += 1;
   };
   return steps;
};
console.log(minimumSteps(num));

출력

콘솔의 출력은 -

3