알고리즘/BOJ(C++)

[BOJ] 1373 :: 2진수 8진수

쿠마쿠마34 2018. 6. 19. 21:42
반응형

https://www.acmicpc.net/problem/1373


2진수를 8진수로 바꾸는 간단한 문제입니다.

2진수를 3개씩 끊어서 10진수로 바꿔서 출력해주면 됩니다.


앞의 3개만 예외처리 해서 총 길이가 3의배수가 아닐경우 처리해주면 됩니다.


#include <iostream>
#include <string>
#include <stack>
#include <cmath>
using namespace std;
int main()
{
string initial;
cin >> initial;
int decimal = 0;
int len = initial.length();
int left = len % 3;
if (left == 1)
{
cout << initial[0];
}
else if (left == 2)
{
int temp = ((int)initial[0] - 48)* 2 + initial[1] - 48;
cout << temp;
}
for (int i = left; i < len; i+=3)
{
int temp = ((int)initial[i] - 48) * 4 + (initial[i+1] - 48)*2 + (initial[i+2] - 48);
cout << temp;
}
cout << endl;

}

반응형