1212
문제
8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
출력
첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.
예제
- 입력 : 314
- 출력 : 11001100
풀이
- 입력 : 314
- 출력 : 11001100
2진수를 8진수로 바꾸는 문제를 거꾸로 해주면 된다.
8진수 숫자 하나하나 2진수 세자리로 바꿔준 후 출력해주면 된다.
코드
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void ft_print_binary(int n, int cnt)
{
vector <int> binary;
vector <int> ::reverse_iterator riter;
while (1)
{
binary.push_back(n % 2);
n /= 2;
if (n == 0) break;
}
if (cnt != 0) # 첫재 자리수가 아닌경우 빈자리에 0 추가
{
while (binary.size() != 3)
binary.push_back(0);
}
for (riter = binary.rbegin(); riter != binary.rend(); riter++)
cout << *riter;
}
int main()
{
string str;
vector <int> v;
int cnt = 0;
cin >> str;
for (int i = 0; i < str.length(); i++)
v.push_back(str[i] - '0');
for (auto x : v)
{
ft_print_binary(x, cnt);
cnt++;
}
return (0);
}
Author And Source
이 문제에 관하여(1212), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lsmmay322/백준-1212저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)