Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

스택을 사용하여 10진수를 2진수로 변환하는 C++ 프로그램

<시간/>

이 문제에서는 스택을 사용하여 십진수를 이진수로 변환하는 방법을 볼 것입니다. 십진수를 2로 나누고 나머지를 취한 후 이진수를 사용하여 변환할 수 있다는 것을 알고 있습니다. 나머지를 마지막에서 처음으로 취하므로 스택 데이터 구조를 쉽게 사용할 수 있습니다.

Input: Decimal number 13
Output: Binary number 1101

알고리즘

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

예시 코드

#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);
}

출력

Enter a number: 18
10010