Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm số Boom thứ K.
Số chỉ chứa chữ số 2 và 3 được gọi là số Boom.
Các bước giải quyết
- Khởi tạo giá trị K.
- Khởi tạo queue chuỗi.
- Đẩy chuỗi rỗng vào queue.
- Khởi tạo biến đếm = 0.
- Viết vòng lặp cho đến khi counter > K:
- Lấy front của queue.
- Pop phần tử.
- Lưu front vào biến tạm.
- Push chuỗi + '2'.
- Tăng counter, kiểm tra bằng K.
- Nếu bằng K, in kết quả và break.
- Push chuỗi + '3'.
- Tăng counter, kiểm tra bằng K.
Ví dụ
Dưới đây là mã nguồn C++:
#include <bits/stdc++.h>
using namespace std;
void findKthBoomNumber(long long k) {
queue<string> q;
q.push("");
long long count = 0;
while (count <= k) {
string numberOne = q.front();
q.pop();
string numberTwo = numberOne;
q.push(numberOne.append("2"));
count++;
if (count == k) {
cout << numberOne << endl;
break;
}
q.push(numberTwo.append("3"));
count++;
if (count == k) {
cout << numberTwo << endl;
break;
}
}
}
int main() {
long long k = 45;
findKthBoomNumber(k);
return 0;
}Kết quả
Nếu bạn chạy mã trên, kết quả sẽ là:
23332
Kết luận
Nếu bạn có bất kỳ thắc mắc nào về hướng dẫn này, hãy để lại bình luận bên dưới.