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

โปรแกรม C++ แปลงเลขฐานสิบเป็นเลขฐานสองด้วย Stack


ในปัญหานี้ เราจะดูวิธีแปลงเลขฐานสิบเป็นเลขฐานสองโดยใช้ Stack เรารู้ว่าเลขฐานสิบสามารถแปลงเป็นฐานสองได้โดยการหารด้วย 2 และเก็บเศษ เราเอาเศษจากหลังสุดมาหน้าสุด ดังนั้นจึงใช้โครงสร้างข้อมูล Stack ได้อย่างง่ายดาย

Input: เลขฐานสิบ 13
Output: เลขฐานสอง 1101

อัลกอริทึม

ขั้นตอน 1: รับเลขฐานสิบ
ขั้นตอน 2: while เลขมากกว่า 0:
    ขั้นตอน 2.1: Push เศษจากการหารเลขด้วย 2 เข้า stack
    ขั้นตอน 2.2: ตั้งค่าเลข = เลข / 2
ขั้นตอน 3: Pop องค์ประกอบจาก stack และพิมพ์เลขฐานสอง

ตัวอย่างโค้ด

#include <iostream>
#include <stack>
using namespace std;

void dec_to_bin(int number) {
    stack<int> stk;
    while(number > 0) {
        int rem = number % 2; // หาเศษ
        number = number / 2;
        stk.push(rem);
    }
    while(!stk.empty()) {
        int item;
        item = stk.top();
        stk.pop();
        cout << item;
    }
}

main() {
    int num;
    cout << "Enter a number: ";
    cin >> num;
    dec_to_bin(num);
}

ผลลัพธ์

Enter a number: 18
10010