백준 11005번 진법 변환 2

< 백준 11005번 진법 변환 2 - 마포 코딩박 >

사용한 알고리즘: 구현


 십진법 수 N 을 B진법으로 바꾸어 출력하는 문제입니다.

문제풀이는 다음과 같습니다.

(1) (코드 7~14)
 임의의 수 a 를 0,1,2,..,9,A,B,...,Z 로 변환해주는 함수를 만듭니다.

(2) (코드 15~20)
 입력받은 수 N 을 B진법으로 바꾸어주는 함수를 만듭니다.
  답은 string 형태로 저장할 것이므로 B진법으로 변환한 답의 큰 자리부터 만드는 순서에 유의해줍니다.

#include <bits/stdc++.h>
using namespace std;
int N, B;
string ans;
char Change(int a){
char temp;
// 수로 표현되는 경우
if(a<10) return temp = a+'0';
// 알파벳으로 표현해야되는 경우
a-=10;
return temp = a+'A';
}
void MakeAns(int x){
if(x==0) return;
// 앞자리 부터 만들기, 순서 유의
MakeAns(x/B);
ans+=Change(x%B);
}
int main(){ios_base::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL);
cin >> N >> B;
MakeAns(N);
cout << ans << '\n';
return 0;
}
view raw BOJ 11005.cpp hosted with ❤ by GitHub


댓글