티스토리 뷰
728x90
진법 변환

진법 변환 기본 코드
while(N>0){
int D=N%B;
if(D<10) ans+=D;
else{
ans+=(char)(D-10+'A');
}
N=N/B;
}
int로 문자 출력하는 법
ex) 0 -> 'A', 1 -> 'B'
//아스키 코드 이용
(char) (변수)+'A'
BOJ 11005 코드
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
int n, b;
vector<int> vec;
char c[36];
cin>>n>>b;
//숫자+문자열
for (int i = 0; i < 10; i++)
{
c[i] = '0' + i;
}
int j=0;
//얼마에서 해야하는지
while(n>pow(b,j)){
j++;
}
//10이 넘어갈 경우 문자열 추가
for (int i = 0; i < 26; i++)
{
c[i + 10] = 'A' + i;
}
//본격적인 진법 변환
for (int i = j; i >= 0; i--)
{
if (n - pow(b,i) >= 0)
{
vec.push_back((int)(n / pow(b,i)));
n = n % (int)pow(b,i);
}else{
vec.push_back(0);
}
}
bool sig=false;
for (int i = 0; i < vec.size(); i++)
{
//맨 앞이 0이 출력되면 안되기 때문에 signal로 처리
if (vec[i]!=0 || sig==true)
{
cout<<c[vec[i]];
sig=true;
}
}
}
728x90
'코딩테스트' 카테고리의 다른 글
[BOJ 1920] 수찾기, set lower_bound() (6) | 2024.10.01 |
---|---|
입출력 속도 높이는 법 C++ (0) | 2024.02.14 |
카운팅 정렬 (Counting Sort) - BOJ 10989 (0) | 2024.02.13 |
순열과 조합 C++ (1) | 2024.02.13 |
[BOJ 1920] std::binary_search()를 set에 사용하면 안되는 이유 (이분탐색이 O(n)이 되어버리는 매직) (2) | 2024.01.18 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스페인
- JS
- 혼공학습단
- 백준
- 교환학생
- 리눅스
- 해커톤
- AWS
- JavaScript
- googleapis
- C++
- nodejs
- 개발일지
- 프로젝트
- MySQL
- 공룡책
- 깃 예제
- 혼공단
- 백엔드 개발
- Process
- Linux
- Signal
- 개발
- 혼공단 SQL
- 혼공
- 혼공단 9기
- 운영체제
- 스페인 교환학생
- SQL
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함