💻STUDY/BOJ
[BOJ] 11005. 진법 변환 2 (C)
- 코딩 초보
11005. 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
#include <stdio.h>
main() {
long long n;
int b,count=0;
char s[36];
char ans[40];
for (int i = 0; i < 10; i++) s[i] = '0' + i;
for (int i = 10; i < 36; i++) s[i] = 'A' - 10 + i;
scanf("%lld %d", &n, &b);
for (int i = 0; n > 0; i++) {
ans[i] = n % b;
n /= b;
count++;
}
for (int i = count-1; i>=0; i--) {
printf("%c", s[ans[i]]);
}
}
0~9, A~Z 는 s 라는 char형 배열에 넣어 저장했다.
n을 계속 b로 나누어 그 나머지를 ans배열에 저장하고, 거꾸로 인덱스로 접근하여 s 배열에 저장된 문자들을 출력하도록 했다.
'💻STUDY > BOJ' 카테고리의 다른 글
[BOJ] 1966. 프린터 큐 (Python) (0) | 2022.02.13 |
---|---|
[BOJ] 11650. 좌표 정렬하기 (Python) (0) | 2022.02.12 |
[BOJ] 1977. 완전제곱수 (C) (0) | 2022.02.10 |
[BOJ] 1920. 수 찾기 (Python) (0) | 2022.02.09 |
[BOJ] 2164. 카드2 (Python) (0) | 2022.02.08 |
댓글