도움얻을수 있을가여? C언어 재귀함수를 이용해서 16진수로 출력하는
찬
C언어 재귀함수 문제입니다.질문 요약 :재귀적함수를 이용하여 입력받은 정수를 16진수로 출력하는 프로그램을 작성하시오.질문 내용 : 재귀함수 없이 그냥 16진수표현하라면 쉬운거같은데 재귀함수로 하라니까 어떻게 해야할지 모르겠어요
재귀함수 개념도 조금 부족하고해서..
고수님들답변, 조언부탁드립니다.
-
스콜피온
오류수정합니다.
나머지를 출력하고 몫으로 재귀호출을 하면 되기 때문입니다. 가 아니라
몫을 출력하고 나머지로 재귀호출을 하면됩니다 입니다.
int quotient; 선언이 필요가 없네요. -
히나
진법 변환 같은 경우는 비트연산자를 쓰지 않는 이상에는 재귀함수가 구현하기 편할수도 있습니다. 왜냐하면 일반적으로 진법변환을 하게 되면 나오는 자리수는 높은 자리부터 나오게 마련인데 그러면 높은 부터 저장을 했다가 역순으로 출력해 줘야 하죠. 하지만 재귀함수라면 나머지를 출력하고 몫으로 재귀호출을 하면 되기 때문입니다.
#include stdio.h
#include stdlib.h
void DecToHex(int d);
int main(void)
-
큰마루
ㅜ.ㅡ 도움되네여 감사...
-
캔서
처음 수를 dec 라고 하면
hex[0] = dec % 16 이 첫째자리 인가요? 그 다음에
hex[1] = (dec - (dec % 16)) % 16 이 두번째 자리 인가요?
hex[2] = ...
fn(수)
{
static int digit = 1;
if(수 pow(16, digit))
return;
hex[digit-1] = toHex(수 % (int)pow(16, digit));
digit++;
수 -= 수 % 16;
fn(수);