728x90
1. 문제
https://codeup.kr/problem.php?id=2017
[출처 : 코드업(https://codeup.kr/)]
이번 문제는 10진법으로 입력된 수를 주어지 진수로 변환하는 문제입니다.
진법 변화를 하는 방법은 다음을 예를 들어 설명 드리겠습니다.
*10진법 -> 2진법
10 / 2 = 5 ....... 0
5 / 2 = 2 ....... 1
2 / 2 = 1 ....... 0
1 / 2 = 0 ....... 1
10(10) -> 1010(2)
10진법을 몫이 0이 될때까지 2로 나누어주고 나머지를 역순으로 읽어주면 됩니다.
2. 해답
#include <stdio.h>
char format(int n) {
if (n < 10) {
return (char)(n + 48);
}
else {
return (char)(n + 55);
}
}
int main() {
int n, k;
int tmp, a = 0;
char Arr[28];
scanf("%d %d", &n, &k);
for (int i = 0; i < 28; i++) {
if (n / k == 0) {
Arr[i] = format(n); // 마지막 수를 배열에 입력
a = i; // 몇자리의 수인지 확인
break;
}
Arr[i] = format(n % k); // n을k로 나눈 나머지를 입력
n /= k;
}
for (int i = a; i >= 0; i--) {
printf("%c", Arr[i]); // 변환 후에는 역순으로 출력
}
return 0;
}
'프로그래밍 > CodeUp' 카테고리의 다른 글
CodeUp[Q_2019] : 이차 방정식의 해 (0) | 2020.03.15 |
---|---|
CodeUp[Q_2018] : 개미 수열 (0) | 2020.03.14 |
CodeUp[Q_2016] : 천단위 구분기호 (0) | 2020.02.18 |
CodeUp[Q_2013] : 화학식량 구하기 (0) | 2020.02.17 |
CodeUp[Q_2012] : 1의 개수는? 2 (0) | 2020.02.10 |