ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมค้นหาหมายเลขบูมที่ 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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น