11005번 - 진법 변환2
내가 약간 진법이 약해서 문제를 풀어보았다.
계속 나누고 몫과 나머지를 이용해서 진법을 변환시킨다.
문제에서 숫자와 문자를 모두 표현해야 했기에, char 형 배열에 숫자도 문자화해서 한꺼번에 처리했다.
그리고 stack 을 이용해서 가장 나중에 들어간 값이 가장 처음에 나오도록 해서 정답을 출력했다.
<정답 코드>
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 | #include<iostream> #include<stack> using namespace std; int main() { int N, B; char num[36] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; stack<char> s; cin >> N >> B; while (N !=0) { char tmp; tmp = num[N%B]; N = N / B; s.push(tmp); } while (!s.empty()) { char front = s.top(); s.pop(); cout << front; } cout << endl; return 0; } | cs |
반응형