zoukankan      html  css  js  c++  java
  • 数的进制转换

     

     

     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 }
  • 相关阅读:
    STL 源代码剖析 算法 stl_numeric.h -- copy
    SQLServer 复制和数据库镜像 具体配置部署
    2016第23周三
    2016第23周二
    2016第23周一
    2016第22周日
    2016第22周六
    2016第22周五
    五个JS经典面试题
    2016第22周三
  • 原文地址:https://www.cnblogs.com/fx1998/p/14032325.html
Copyright © 2011-2022 走看看