Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 K'Boom Number

<시간/>

이 튜토리얼에서는 k번째 붐 번호를 찾는 프로그램을 작성할 것입니다.

2와 3만 포함된 숫자를 붐 넘버라고 합니다.

위의 문제를 해결하기 위한 단계를 살펴보겠습니다.

  • k의 값을 초기화합니다.
  • 문자열 대기열을 초기화합니다.
  • 빈 문자열을 대기열로 푸시합니다.
  • 카운터 변수를 0으로 초기화합니다.
  • 카운터가 주어진 k보다 작거나 같을 때까지 반복하는 루프를 작성하십시오.
    • 대기열의 맨 앞자리를 차지하세요.
    • 대기열에서 요소를 팝니다.
    • 대기열의 앞부분을 변수에 저장합니다.
    • 앞에 2를 붙인 후 숫자를 누르세요.
    • 카운터를 증가시키고 k가 카운터와 같은지 여부를 확인합니다.
    • 카운터가 k와 같으면 값을 인쇄하고 중단합니다.
    • 앞에 3을 붙인 후 숫자를 누르세요.
    • 카운터를 증가시키고 k가 카운터와 같은지 여부를 확인합니다.
    • 카운터를 증가시키고 k가 카운터와 같은지 여부를 확인합니다.

예시

코드를 봅시다.

#include<bits/stdc++.h>
using namespace std;
void findKthBoomNumber(long long k) {
   queue<string> queue;
   queue.push("");
   long long count = 0;
   while (count <= k) {
      string numberOne = queue.front();
      queue.pop();
      string numberTwo = numberOne;
      queue.push(numberOne.append("2"));
      count++;
      if (count == k) {
         cout << numberOne << endl;
         break;
      }
      queue.push(numberTwo.append("3"));
      count++;
      if (count == k) {
         cout << numberTwo << endl;
         break;
      }
   }
}
int main() {
   long long k = 45;
   findKthBoomNumber(k);
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

23332

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.