1. [문제]
10829번: 이진수 변환
첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)
www.acmicpc.net
2. [문제 풀이]
풀이 1) 스택을 사용하여 2로 나눈 나머지를 저장하고 이를 pop하여 거꾸로 출력함
풀이 2) 재귀 호출을 사용하여 나머지가 0 혹은 1이면 출력하고 그렇지 않으면 재귀호출 시행
3. [코드]
- 풀이 1
<c++ />
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack <int> s;
long a;
cin>>a;
do{
s.push(a%2);
a/=2;
}while(a!=0);
do{
cout<<s.top();
s.pop();
}while(!s.empty());
}
- 풀이 2
<c++ />
#include <iostream>
using namespace std;
void to_bin(long number) {
if (number == 0 || number == 1) {
cout << number;
}
else {
to_bin(number / 2);
cout << number % 2;
}
}
int main() {
long a;
cin>>a;
to_bin(a);
}
4. [채점 결과]

* 처음으로 맞은게 풀이 1 두번째로 맞은게 풀이 2
'CODE > BOJ' 카테고리의 다른 글
[C++] BOJ 1769 : 3의 배수 (0) | 2021.10.03 |
---|---|
[C++] BOJ 13706 : 제곱근 (0) | 2021.10.03 |
[C++] BOJ 2941 : 크로아티아 알파벳 (0) | 2021.10.02 |
[C++] BOJ 15953 : 상금 헌터 (0) | 2021.10.02 |
[C++] BOJ 5086 : 배수와 약수 (0) | 2021.10.02 |