#include<stdio.h>


void binary(int n);


int main() {

int n;


printf("2진수로 표현할 10진수를 입력하세요 : ");

scanf("%d", &n);


printf("%d를 2진수로 표현하면 >> \n", n);


binary(n);


return 0;


}


void binary (int n) {

int a;


a = n % 2;


if(n>=2) {

binary(n/2);


}



printf("%d", a);


}

십진수를 이진수로 바꾸는 함수입니다.

굵은글씨부분이 재귀함수 부분인데

최종 결과는 맞게 나오는데 

잘생각해보면 재귀함수 부분에서 

10을 예로들면 1010인데

n값이 1까지 되서 처음 1이 나오면 재귀함수가 되지않고

함수가 끝나야하는데 다시 재귀함수 루프를 돌아서

정상적인 값이 나오는데 왜그런거죠...?