문자열을 통해 출력해 주어야 한다. 수의 길이가 333334 까지 나올 수 있으므로 범위는 long long의 -2^63 (-9,223,372,036,854,775,808) 에서 2^63 - 1(9,223,372,036,854,775,807) 를 아득히 뛰어넘는다. 따라서 아래와 같이 코드를 짜면 한 변수에 굳이 값을 저장할 필요 없이 출력 가능하다.
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string eight;
string two[8] = { "000", "001", "010", "011", "100", "101", "110", "111" };
int temp;
cin >> eight;
for (int i = 0; i < eight.length(); i++) {
temp = eight[i] - '0';
if (i == 0) cout << stoi(two[temp]);
else cout << two[temp];
}
}
'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글
[C++/백준 11576번] Base Conversion (0) | 2024.10.30 |
---|---|
[C++/백준 1212번] -2진수 (0) | 2024.10.28 |
[C++/백준 17087번] 숨바꼭질 6 (0) | 2024.10.26 |
[C++/백준 9613번] GCD 합 (0) | 2024.10.26 |
[C++/백준 2004번] 조합 0의 개수 (0) | 2024.10.26 |