반응형
링크
풀이
8진수를 2진수로 변환하는 코드를 작성해야 한다.
8진수의 한 자리가 2진수로 변환했을 때 3자리씩 나오기 때문에 string으로 입력 받아 한 자리씩 변환해주면 된다.
수가 0일 때 0을 출력하는 것과 맨 앞자리가 1부터 시작될 수 있도록 flag를 하나 세워주면 문제를 해결할 수 있다.
코드
//1212_8진수 2진수
#include <iostream>
#include <string>
using namespace std;
string str, res;
int main() {
cin >> str;
if (str == string("0")) printf("0\n");
for (int i = 0; i < str.length(); i++) {
res += to_string((str[i] - '0') / 4);
res += to_string(((str[i] - '0') % 4) / 2);
res += to_string((((str[i] - '0') % 4) % 2) / 1);
}
int flag = 0; // 앞에 0 자르고 1부터 출력하는 flag
for (int i = 0; i < res.length(); i++) {
if (!flag) {
if (res[i] == '1') {
flag = 1;
cout << res[i];
}
}
else {
cout << res[i];
}
}
cout << '\n';
return 0;
}
반응형
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ] 3733 Shares (0) | 2022.09.12 |
---|---|
[백준 BOJ] 2420 사파리월드 (0) | 2021.03.08 |
[백준 BOJ] 17496 스타후르츠 (0) | 2021.03.07 |
[백준 BOJ][Python] 16170 오늘의 날짜는? (0) | 2021.03.07 |
[백준 BOJ] 15894 수학은 체육과목 입니다 (1) | 2021.03.07 |