Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาเลข Boom ลำดับที่ k ใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาเลข Boom ลำดับที่ k

ตัวเลขที่ประกอบด้วยเลข 2 และ 3 เท่านั้น จะเรียกว่า Boom number

ขั้นตอนการแก้ปัญหา

  • กำหนดค่าเริ่มต้นของ k
  • กำหนดคิวของสตริง
  • เพิ่มสตริงว่างเข้าไปในคิว
  • กำหนดตัวแปรนับเริ่มต้นเป็น 0
  • เขียนลูปที่วนจนกว่าตัวนับจะมากกว่าหรือเท่ากับ k ที่กำหนด
    • ดึงค่าหน้าคิว
    • Pop องค์ประกอบออกจากคิว
    • เก็บค่าหน้าคิวไว้ในตัวแปร
    • เพิ่มตัวเลขต่อท้าย 2 เข้าไปในคิว
    • เพิ่มตัวนับและตรวจสอบว่า k เท่ากับตัวนับหรือไม่
    • ถ้าตัวนับเท่ากับ k ให้พิมพ์ค่าและ break
    • เพิ่มตัวเลขต่อท้าย 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

สรุป

หากมีข้อสงสัยเกี่ยวกับบทช่วยสอนนี้ สามารถถามได้ในส่วนความคิดเห็น