구현(Implementation)
백준 10829번: 이진수 변환
cepiloth
2018. 7. 23. 15:02
반응형
https://www.acmicpc.net/problem/10829
1. 문제
자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오.
2. 알고리즘
키워드 - 이진수, 수학
3. 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <iostream> #include <sstream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <list> #include <queue> #include <deque> #include <map> #include <set> #include <stack> #include <math.h> using namespace std; #define MAX_SIZE 100 #define INF 0x7fffffff #define CENDL "\n" #define ll long long vector<int> solve(long long n) { vector<int> arr; while(n!=1) { long long cand = n / 2; long long cand2 = n % 2; arr.push_back(cand2); n = n / 2; if (n == 1) { arr.push_back(1); break; } } return arr; } int main() { cin.tie(0); std::ios::sync_with_stdio(false); long long n; cin >> n; vector<int> a = solve(n); reverse(a.begin(), a.end()); for (auto sol : a) { cout << sol; } cout << CENDL; return 0; } | cs |
반응형