[백준] 11005. 진법 변환2

2023. 7. 19. 15:28코딩테스트/백준

[문제]

https://www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를

www.acmicpc.net

[풀이]

문자열 배열 s에 

s를 역순으로 출력. 이때 문자열 배열이므로 0~9사이이면 +'0'을, A~Z 사이이면 -10+'A'를 해준다.

[코드]

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int main(void)
{
	long long neww;
	long long k;
	long long si = 0;
	char s[100001];

	scanf("%llu %llu", &neww, &k);

	while (neww > 0) {
		s[si++] = neww % k;
		neww /= k;
	}
	
	for (long long i = si - 1; i >= 0; i--) {
		if (s[i] >= 0 && s[i] <= 9)
			printf("%c", s[i]+'0');
		else
			printf("%c", s[i] - 10 + 'A');
	}
}