数制转换

数制转换

http://www.nowcoder.com/questionTerminal/8ef02ef8571b417d8c311a87861f7a03

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>

using namespace std;

char IntToChar(int n) {
  if (n >= 10) {
    return n - 10 + 'A';
  } else {
    return n + '0';
  }
}

int CharToInt(char c) {
  if (c <= 'f' && c >= 'a')  {
    return c - 'a' + 10;
  } else if (c <= 'F' && c >= 'A') {
    return c - 'A' + 10;
  } else if (c <= '9' && c >= '0') {
    return c - '0';
  }
  return 0;
}

int main() {
  string str,result;
  int a, b;
  while (cin >> a >> str >> b) {
    int sum = 0, k = 1;
    for (int i = str.size() - 1; i >= 0; --i) {
      sum += k * CharToInt(str[i]);
      k *= a;
    }
    while (sum) {
      result = IntToChar(sum % b) + result;
      sum /= b;
    }
    // reverse(result.begin(), result.end());
    cout << result << endl;
  }
  return 0;
}
全部评论

相关推荐

挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
神哥不得了:神哥来啦~ JVm可以写在juc的下面,另外的话,项目亮点的话再重新用star法则再改一遍,其余的东西写的还是非常的好的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务