标签:number std using har 进制转换 space ima 图片 ack
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() { 4 int t; 5 cin >> t; 6 while (t--) { 7 int a, b; 8 string a_line, b_line; 9 cin >> a >> b >> a_line; 10 vector<int> number; 11 for (int i = 0; i < a_line.size(); i++) { 12 if (a_line[i] >= ‘0‘ && a_line[i] <= ‘9‘) { 13 number.push_back(a_line[i] - ‘0‘); 14 } 15 if (a_line[i] >= ‘A‘ && a_line[i] <= ‘Z‘) { 16 number.push_back(a_line[i] - ‘A‘ + 10); 17 } 18 if (a_line[i] >= ‘a‘ && a_line[i] <= ‘z‘) { 19 number.push_back(a_line[i] - ‘a‘ + 36); 20 } 21 } 22 reverse(number.begin(), number.end()); 23 vector<int> res; //答案 24 25 while (number.size()) { //只要number不是空的,也就是说只要还没有被除成0 26 int r = 0; //存储进位,上一位的余数 27 for (int i = number.size() - 1; i >= 0; i--) { 28 number[i] += r * a; 29 r = number[i] % b; 30 number[i] /= b; 31 } 32 res.push_back(r); //个十百千... 33 while (number.size() && number.back() == 0) { 34 number.pop_back(); 35 } 36 } 37 reverse(res.begin(), res.end()); 38 for (int i = 0; i < res.size(); i++) { 39 if (res[i] <= 9) { 40 b_line += char(res[i] + ‘0‘); 41 } 42 if (res[i] >= 10 && res[i] <= 35) { 43 b_line += char(res[i] + ‘A‘ - 10); 44 } 45 if (res[i] >= 36) { 46 b_line += char(res[i] + ‘a‘ - 36); 47 } 48 } 49 cout << a << " " << a_line << endl; 50 cout << b << " " << b_line << endl; 51 cout << endl; 52 } 53 return 0; 54 }
标签:number std using har 进制转换 space ima 图片 ack
原文地址:https://www.cnblogs.com/fx1998/p/14032325.html