Trong bài toán này, chúng ta sẽ xem cách chuyển một số thập phân sang số nhị phân bằng cách sử dụng ngăn xếp. Như chúng ta biết rằng các số thập phân có thể được chuyển đổi bằng cách sử dụng nhị phân sau khi chia nó cho 2 và lấy phần dư. Chúng tôi lấy phần còn lại từ cuối cùng đến đầu tiên, vì vậy chúng tôi có thể dễ dàng sử dụng cấu trúc dữ liệu ngăn xếp để thực hiện điều đó.
Input: Decimal number 13 Output: Binary number 1101
Thuật toán
Step 1: Take a number in decimal Step 2: while the number is greater than 0: Step 2.1: Push the remainder after dividing the number by 2 into stack. Step 2.2: set the number as number / 2. Step 3: Pop elements from stack and print the binary number
Mã mẫu
#include<iostream> #include<stack> using namespace std; void dec_to_bin(int number) { stack<int> stk; while(number > 0) { int rem = number % 2; //take remainder 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); }
Đầu ra
Enter a number: 18 10010