10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
int n, B;
char ans[101];
scanf("%d %d", &n, &B);
int i = 0;
while (n > 0) {
int cal = n % B;
if (cal >= 10) {
ans[i] = cal + 55;
} else {
ans[i] = cal + '0';
}
i++;
n /= B;
/*n=n/B, 이렇게 해야 n이 몫으로 새로 정의되면서
반복문에서 제대로 계산을 함.*/
}
for (int j = i - 1; j >= 0; j--) {
printf("%c", ans[j]);
}
/*int i가 배열 ans의 길이가 되므로*/
return 0;
}