https://www.acmicpc.net/problem/11005
이런 문제를 처음 풀어본다면 조금은 까다롭게 느낄 수 있을것 같습니다.
이런 진법변환 문제는 ASCII 코드를 사용하면 쉽게 해결할 수 있습니다.
C++의 경우 int -> char 변환이 ASCII 코드를 통해 이루어집니다. (EX- char(48) == '0')
떄문에 이러한 특성을 이용하면 좋겠죠. ASCII 코드는 검색하면 많이 나와요.
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main(){
int N;
int B;
cin >> N >> B;
int square = 0;
int div = N / pow(B,square);
while( int(N / pow(B,square+1)) > 0){
square++;
div = N / pow(B,square);
}
for(int i=square; i>=0; i--){
div = N / pow(B,i);
N -= div * pow(B,i);
if(div >= 10){
div +=55;
}
else{
div += 48;
}
cout << char(div);
}
}
https://github.com/J2on/BaekjoonOnlineJudge/blob/master/Code/Bronze/11005.cpp
< 백준 BaekJoon : 9506번 약수들의 합> C++ (0) | 2023.08.03 |
---|---|
< 백준 BaekJoon : 2903번 중앙 이동 알고리즘> C++ (0) | 2023.08.02 |
< 백준 BaekJoon : 2563번 색종이> C++ (0) | 2023.07.31 |
< 백준 BaekJoon : 10798번 세로읽기> C++ (0) | 2023.07.31 |
< 백준 BaekJoon : 2566번 최댓값> C++ (0) | 2023.07.31 |
댓글 영역