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