//土尔逊Torson 编写于2023/5/03 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <string> #include <vector> using namespace std; string Divide(string str, int x) { //字符串除法 int remainder = 0; //保存余数 for (int i = 0; i < str.size(); ++i) { int current = remainder * 10 + str[i] - '0'; str[i] = current / x + '0'; remainder = current % x; } int pos = 0; while (str[pos] == '0') { //寻找首个非0下标 pos++; } return str.substr(pos); //删除前置多余的0 } int main() { string str; while (cin >> str) { vector<int> binary; while (str.size() != 0) { int last = str[str.size() - 1] - '0'; //最低位的值 binary.push_back(last % 2); //取模运算 str = Divide(str, 2); //整除运算 } for (int i = binary.size() - 1; i >= 0; --i) { printf("%d", binary[i]); } printf("\n"); } system("pause"); return EXIT_SUCCESS; } // 64 位输出请用 printf("%lld")