#include <iostream> using namespace std; struct bigInterger { int digits[30]; int length; bigInterger(); bigInterger(string s); bigInterger divide(int b); void calculateSize(); }; void bigInterger:: calculateSize() { for (int i = length - 1; i >= 0; i--) { if (digits[i] == 0) { length--; } else break; } } bigInterger::bigInterger() { for (int i = 0; i < 30; i++) { digits[i] = 0; } length = 30; } bigInterger::bigInterger(string s) { for (int i = 0; i < 30; i++) { digits[i] = s[s.size() - 1 - i]-'0'; } length = s.size(); } bigInterger bigInterger::divide(int b) { bigInterger ans; int remainer = 0; for (int i = length - 1; i >= 0; i--) { int temp = remainer * 10 + digits[i]; ans.digits[i] = temp / b; remainer = temp % b; } ans.calculateSize(); return ans; } int main() { string a; while (cin >> a ) { // 注意 while 处理多个 case // cout << a + b << endl; string ans; bigInterger A = bigInterger(a); if (a == "0") ans = "0"; else { while (A.length != 0) { ans = to_string(A.digits[0] % 2) + ans; A = A.divide(2) ; } } cout << ans << endl; } } // 64 位输出请用 printf("%lld")