반응형
문제).
10진수 데이터를 입력받아서 2진수, 8진수, 16진수로 변환하는 재귀호출함수를 구현하시오.
실행 예1).
입력)
10진수 정수 입력: 25
결과).
2진수: 11001
8진수: 31
16진수: 19
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
프로그램 소스
#include <stdio.h>
const static char NUMBERS[16]
= {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
/* 10 진수를 2 ~ 16진수로 변한하는 함수 */
void decimal_to_base_number(long num, int base)
{
long temp = num;
if(base < 2 || base > 16) {
printf("2 ~ 16진수만 지원 가능합니다.\n");
return;
}
if(num <= 0) {
return;
}
temp /= base;
decimal_to_base_number(temp, base);
printf("%c", NUMBERS[num % base]);
}
int main(void)
{
long number;
printf("10진수 정수 입력: ");
scanf("%ld", &number);
printf("\n2진수: ");
decimal_to_base_number(number, 2);
printf("\n8진수: ");
decimal_to_base_number(number, 8);
printf("\n16진수: ");
decimal_to_base_number(number, 16);
return 0;
}
반응형
'C언어 문제 > 수학 문제' 카테고리의 다른 글
삼각형의 종류(예각, 직각, 둔각)와 둘레, 넓이 구하기 (0) | 2021.10.27 |
---|---|
[백준 1463] 1로 만들기 (0) | 2020.08.12 |
오일러 파이 함수(Eulerφ函數: Euler’s phi (totient) function) 구현 (0) | 2020.06.22 |
한 변의 길이가 100이하인 직각 삼각형 구하기 (0) | 2020.06.12 |
복소수의 더하기/빼기/곱하기/절대값 구하기 (0) | 2020.06.12 |