반응형
[ 문제 ]
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
[ 코드 ]
using System.Numerics;
using System.Text;
StringBuilder sb = new StringBuilder();
string[] input = Console.ReadLine().Split();
BigInteger n = BigInteger.Parse(input[0]);
int b = int.Parse(input[1]);
string result = "";
string[] alphabets = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".Select(c => c.ToString()).ToArray();
while(n > 0)
{
result += alphabets[(int)n % b];
n /= b;
}
for(int i = result.Length - 1; i >= 0; i--)
{
sb.Append(result[i]);
}
Console.Write(sb.ToString());
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/11005
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 2903번 중앙 이동 알고리즘 (0) | 2024.02.08 |
---|---|
[C#] 백준 11283번 한글 2 (0) | 2024.02.07 |
[C#] 백준 1978번 소수 찾기 (0) | 2024.02.07 |
[C#] 백준 1676번 팩토리얼 0의 개수 (0) | 2024.02.06 |
[C#] 백준 2563번 색종이 (0) | 2024.02.06 |