본문 바로가기
프로그램/C++ 1000제

C++ 47제] vector 사용, 10진수를 2진수로 변환하시오.

by 건티 2022. 6. 17.
728x90

출처 : 반크_세계유산 석굴암

 

문제]

10진수를 입력하면 2진수로 변환하는 프로그램을 작성하시오.

 

출력 예)

10진수를 입력하시오 : 10

입력한 수 102진수 값은 1010 입니다.

 

계속하시겠습니까?(Y/N) y

 

10진수를 입력하시오 : 100

입력한 수 10 2진수 값은 1100100입니다.

 

계속하시겠습니까?(Y/N) N

수고하셨습니다.

 

참고풀이]

#include <iostream>
#include <vector>
#include <string> //toupper()
using namespace std;

int main()
{
   vector<int> v;
   int N;//10진수 입력변수
   int M;//입력변수를 대신할 변수 
   int i;//반복 또는 인덱스 변수
   char ch;//계속여부 체크변수

   while(1)
   {
      cout << "10진수를 입력하시오 : ";
      cin >> N;
      M=N;
      for(;M!=0;M/=2)
         v.push_back(M%2);

      //결과출력
      cout << "입력한 수 " << N << "의 2진수 값은 ";
      for(i=v.size()-1;i>=0;i--)
         cout << v[i];
      cout << "입니다.\n\n";

      //계속여부 체크부분
      cout << "계속하시겠습니까?(y/n) ";
      cin >> ch;
      if(toupper(ch)=='N') break;
      v.clear();//vector의 내용을 깨끗이 한다. 
      cout << endl; 
   }

   cout << "수고하셨습니다.\n";
   return 0;
}

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 봄

 

반응형

댓글