본문 바로가기
코드업(codeup)/C

[코드업(codeup)/C]코드업(codeup) 1920 : (재귀함수) 2진수 변환 C언어

by starfish22 2021. 11. 20.
728x90

▶문제 : (재귀 함수) 2진수 변환 (codeup.kr)

 

(재귀함수) 2진수 변환

어떤 $10$진수 $n$이 주어지면 $2$진수로 변환해서 출력하시오. 예) 10    ----->  1010 0    ----->  0 1    ----->  1 2    ----->  10 1024    ----->  10000000000 이 문제는 반복문을 이용하여 풀 수 없습니

codeup.kr

 

▶코드 작성

#include <stdio.h>

void func(int n)
{
    if (n > 1)// 1,0 은 2로 나눌 필요가 없음
    {
        func(n / 2);//2로 나눈 몫으로 2진수를 구함
    }
    printf("%d", n % 2);//2로 나눈 나머지 출력
}

int main()
{
    int n;
    scanf("%d", &n);

    func(n);

    return 0;
}

 

▶해석

입력한 수(n)를 2로 나눈 나머지는 2진수의 맨 끝자리 수이기 때문에 if문 다음에 printf를 사용함.

2진수는 주어 진수(n)를 1 이하의 수가 될 때까지 2로 나눈 다음 그 몫을 2로 나눈 나머지로 구할 수 있음.

728x90

댓글