https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
풀이
#include <stdio.h>
int main() {
int n, b; // 10진법 n에서 바꿀 b진법
int total[30]; // total = b진법의 n (최대 2^30 = 10억 까지 가능)
int i = 0, cnt = 0; // i는 total 인덱스, cnt는 배열의 끝항을 위해
scanf("%lld %d", &n, &b);
while (n) { // n이 0이 될때까지 반복
total[i] = (int)n % b; // total에는 n%b의 값만 저장
n = (int)n / b; // n은 n/b의 값으로 변경
i++;
cnt++;
}
// cnt를 통해 total배열을 역으로 출력
for (int j = cnt - 1; j >= 0; j--) {
if (total[j] >= 10) // 나머지값이 10 이상일때는
printf("%c", total[j] + 55); // 문자로 출력
else // 이하일때
printf("%d", total[j]); // 숫자 출력
}
return 0;
}
'코딩 > 백준 문제 (브론즈)' 카테고리의 다른 글
[백준/11720/C언어] 숫자의 합 _ 풀이 (0) | 2023.08.09 |
---|---|
[백준/27866/C언어] 문자와 문자열 _ 풀이 (0) | 2023.08.09 |
[백준/2745/C언어] 진법 변환 _ 풀이 (0) | 2023.08.09 |
[백준/2441/C언어] 별 찍기 - 4 _ 풀이 (0) | 2023.08.08 |
[백준/2558/C언어] A+B - 2 _ 풀이 (0) | 2023.08.08 |