문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
예제 입력 1
60466175 36 |
예제 출력 1
ZZZZZ |
더보기
Solution
#include<stdio.h>
#include<string.h>
int main(void)
{
int N, B;
char ans[32]={'\0', };
scanf("%d %d", &N, &B);
for(int i=0;N>0;i++)
{
ans[i]=N%B>9?N%B+'A'-10:N%B+'0';
N/=B;
}
for(int i=0;i<strlen(ans)/2;i++)
{
char temp=ans[i];
ans[i]=ans[strlen(ans)-1-i];
ans[strlen(ans)-1-i]=temp;
}
printf("%s\n", ans);
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 2018번: 수들의 합 5 (0) | 2020.10.13 |
---|---|
<백준 알고리즘> 1373번: 2진수 8진수 (0) | 2020.10.13 |
<백준 알고리즘> 18406번: 럭키 스트레이트 (0) | 2020.10.13 |
<백준 알고리즘> 17496번: 스타후르츠 (0) | 2020.10.13 |
<백준 알고리즘> 조별과제를 하려는데 조장이 사라졌다 (0) | 2020.10.12 |