题目描述 Description
输入一个二进制数,将其快速转化为八进制数。
输入描述 Input Description
一行,一个二进制数
输出描述 Output Description
二进制所对应的八进制形式
样例输入 Sample Input
10001100
样例输出 Sample Output
214
数据范围及提示 Data Size & Hint
这个二进制数对应的十进制数可能会超过long long
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int a, b, c, len; 6 void f(string s) 7 { 8 int t; 9 len = s.size(); 10 if (len >= 3) 11 { 12 a = s[len - 1] - '0'; 13 b = s[len - 2] - '0'; 14 c = s[len - 3] - '0'; 15 t = c * 4 + b * 2 + a; 16 } 17 else 18 { 19 if (len == 0) 20 { 21 return; 22 } 23 if (len == 1) 24 { 25 a = s[len - 1] - '0'; 26 b = 0; 27 c = 0; 28 } 29 else if (len == 2) 30 { 31 a = s[len - 1] - '0'; 32 b = s[len - 2] - '0'; 33 c = 0; 34 } 35 cout << c * 4 + b * 2 + a; 36 return; 37 } 38 s.erase(len - 3, 3); 39 f(s); 40 cout << t; 41 } 42 43 int main() 44 { 45 string s1; 46 cin >> s1; 47 f(s1); 48 }