C++中第K個Boom數


在本教程中,我們將編寫一個程式來查詢第k個Boom數。

只包含數字2和3的數被稱為Boom數。

讓我們看看解決上述問題的步驟。

  • 初始化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

結論

如果您在本教程中有任何疑問,請在評論區提出。

更新於:2021年4月9日

187 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.