Trong bài toán này, chúng ta sẽ thấy cách chuyển đổi số thập phân sang số nhị phân sử dụng ngăn xếp (stack). Như chúng ta biết, số thập phân có thể chuyển đổi sang nhị phân bằng cách chia liên tiếp cho 2 và lấy phần dư. Chúng ta lấy phần dư từ cuối lên đầu, vì vậy có thể dễ dàng sử dụng cấu trúc dữ liệu ngăn xếp để làm điều đó.
Đầu vào: Số thập phân 13 Đầu ra: Số nhị phân 1101
Thuật toán
Bước 1: Nhận một số thập phân
Bước 2: Khi số lớn hơn 0:
Bước 2.1: Đẩy phần dư sau khi chia số cho 2 vào stack.
Bước 2.2: Gán số = số / 2.
Bước 3: Pop các phần tử từ stack và in ra số nhị phânMã ví dụ
#include<iostream>
#include<stack>
using namespace std;
void dec_to_bin(int number) {
stack<int> stk;
while(number > 0) {
int rem = number % 2; //lấy phần dư
number = number / 2;
stk.push(rem);
}
while(!stk.empty()) {
int item;
item = stk.top();
stk.pop();
cout << item;
}
}
main() {
int num;
cout << "Nhập một số: ";
cin >> num;
dec_to_bin(num);
}Kết quả
Nhập một số: 18 10010