백준 1212 8진수 2진수
1212번: 8진수 2진수
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
www.acmicpc.net
8진수를 2진수로 바꾸는 문제
재귀로 풀었다.
여기서 숫자인 문자를 int로 바꿀때 그냥 '0'을 빼주면 된다.
푼지 꽤 되서 기억이 잘 안난다. 암튼 잘한건 아니고,,, 아무튼 풀었음
그리고 2진수->8진수는 3자리씩 끊어서 바꾸면 됨
예전에는 2진수 8진수 16진수 이런거 이해하는게 너무 귀찮고 싫었는데
3학년때 마이크로프로세서 배우면서 익숙해졌다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <iostream> using namespace std; void func(int n) { if (n > 0) { func(n / 2); cout << n % 2; } } int main(void) { char a[333335]; cin >> a; if (a[0] == '0') cout << "0"; else { int n[333335]; int i; for (i = 0; a[i] != '\0'; ++i) n[i] = (int)(a[i] - '0'); func(n[0]); for (int k = 1; k < i; ++k) { if (n[k] == 0) cout << "000"; else if (n[k] == 1) cout << "00"; else if (n[k] < 4) cout << "0"; func(n[k]); } } cout << endl; return 0; } | cs |
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1541 잃어버린 괄호 (0) | 2019.12.25 |
---|---|
백준 2960 에라토스테네스의 체 (1) | 2019.12.04 |
백준 2138 전구와 스위치 (0) | 2019.12.02 |
백준 14720 우유 축제 (2) | 2019.12.02 |
백준 9465 스티커 (0) | 2019.12.02 |