it 취업을 위한 알고리즘 문제풀이 입문 : 57. 재귀함수 이진수 출력
🙇♀️재귀함수 이진수 출력
10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요.
단 재귀함수를 이용해서 출력해야 합니다.
▣ 입력설명
첫 번째 줄에 10진수 N(1<=N<=1,000)이 주어집니다.
▣ 출력설명
첫 번째 줄에 이진수를 출력하세요.
▣ 입력예제 1
11
▣ 출력예제 1
1011
🚀풀이
재귀함수를 이용해서 풀어야한다.
10진수를 2진수로 바꾸는 방법은 2로 계속 나위면서 2의 나머지를 추적하면 된다.
이 방법을 그대로 재귀적으로 만들면 다음과 같다.
void bin(int num)
{
if (num == 0)
return;
bin(num / 2);
cout << num % 2;
}
역으로 추적을 해야하기 때문에 출력이 재귀함수 뒤에 나오는 것이 포인트!
🚀전체 코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
void bin(int num)
{
if (num == 0)
return;
bin(num / 2);
cout << num % 2;
}
int n;
void solve()
{
cin >> n;
bin(n);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen("input.txt", "rt", stdin);
solve();
return 0;
}