[문제 ] 10진수를 2진수 ~ 16진수로 바꾸기
10진수로 된 정수를 입력 받아서 2진수 ~ 16진법의 수로 바꾸어 출력해 보세요.
◈ 입력 형식
10진법의 수 n을 입력받는다.
◈ 출력 형식
변환된 진법을 출력한다. 숫자사이의 간격은 공백하나이다.
◈ 입력과 출력의 예
입력의 예 | 출력의 예 |
255 |
2 11111111 |
[ 10진수를 2진수 ~16진수로 변환 - 소스 ]
#include <stdio.h>
void go(int, int);
int main()
{
int n, i;
scanf("%d" , &n); // n을 입력
for(i=2;i<=16;i++)
{
printf("%d ", i);
go(n, i);
printf("\n");
}
return 0;
}
void go(int x, int j)
{
if(x==0) return;
go(x/j, j);
if( x%j <= 10)
printf("%d" , x%j);
else
printf("%c", (x%j) + 55);
}
※ 11진수부터는 10은 'A'로 11은 'B'로 12는 'C'로 13은 'D'로 14은 'E'로 15은 'F'로 출력해야 합니다. 대문자 'A'의 아스키코드가 65이고 대문자 'B'의 아스키코드가 66이기 때문에 +55를 해서 출력 [ (x%j)+55 ]해야 합니다.
[ 해결해야 할 문제 ]
(14915) (10829) (1212) (1373)
'c언어 재귀함수' 카테고리의 다른 글
13. c언어 재귀함수 - n과 m문제 (1~8번) (0) | 2020.10.22 |
---|---|
12. c언어 재귀함수 - 순열, 조합 구하기 (1) | 2020.07.01 |
10. c언어 재귀함수 - 2진수로 변환 (0) | 2020.06.18 |
9. c언어 재귀함수 - 재귀함수 이해하기 (0) | 2020.03.26 |
8. c언어 재귀함수 - 재귀함수 반복문처럼 사용하기 (0) | 2020.03.26 |