数制转换

数制转换

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;
}
全部评论

相关推荐

群星之怒:不是哥们,你就不好奇瘫痪三十年的老植物人是啥样的吗?
点赞 评论 收藏
分享
永远年轻_永远热泪盈眶:咱们真是苦难哥俩,我是浙大宁理,你是浙大城院,测试学历卡得不严,之前携程实习,只能说确实wlb,但携程学历厂,当时我mentor面试官,给我们看了他面试的六个人,全是研究生,学历最烂的一个都是杭电研究生,复旦华科一堆
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务