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
结论
如果您在本教程中有任何疑问,请在评论区提出。
广告