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 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告