백준 - 11005

아따맘마·2020년 11월 22일
0

알고리즘 - 백준

목록 보기
1/53

문제

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.

10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35

입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.

출력

첫째 줄에 10진법 수 N을 B진법으로 출력한다.

예제

  • 입력
    60466175 36
  • 출력
    ZZZZZ

풀이


수를 진수로 몫이 진수보다 작아질 때까지 계속 나눠준다. 그리고 작아지면 나머지를 출력하는데 나머지가 10보다 크거나 같으면 문자를, 작으면 숫자를 출력

#include <iostream>
using namespace std;

void ft_change(int n, int b)
{
	int a;

	if (n >= b)
	{
		a = n / b;
		ft_change(a, b);
	}
	if (n % b >= 10)
		printf("%c", 'A' + (n % b) - 10);
	else
		printf("%d", n % b);
}

int main()
{
	int n, b;
	cin >> n >> b;

	ft_change(n, b);
	return (0);
}

}
profile
늦게 출발했지만 꾸준히 달려서 도착지점에 무사히 도달하자

0개의 댓글