57번 문제
내가 풀이한 답
Stack 구조를 활용하여 2로 나눈 몫이 1이면 몫과 나머지 순으로 출력하고 1이 아니면 다시 재귀함수를 호출하였다.
//#include <bits/stdc++.h>
#include <iostream>
using namespace std;
void binary(int n){
if(n/2==1) {
cout << n/2 << n%2;
return;
}
else {
binary(n/2);
cout << n%2;
}
}
int main() {
//freopen("input.txt", "rt", stdin);
ios_base::sync_with_stdio(false);
int n;
cin >> n;
binary(n);
return 0;
}
결과는 통과하였다.
사이트의 답안
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
void D(int x){
if(x==0) return;
else{
D(x/2);
printf("%d", x%2);
}
}
int main(){
freopen("input.txt", "rt", stdin);
int n;
scanf("%d", &n);
D(n);
return 0;
}
사이트의 답과 비슷했다.