进制转换

来源:互联网 发布:mac os 10.7怎么升级 编辑:程序博客网 时间:2024/06/13 23:04

任务

把一个x进制的数转换为y进制的数

求解

先将x进制的数转换为为10进制,然后再将十进制转换为为y进制即可注意判断为0的情况个负数的情况

使用范例

HDU-2031-进制转换
 
#include <iostream>using namespace std;string transform(int x, int y, string s) {string res = "";int sum = 0;for (int i = 0; i < s.length(); i++) {if (s[i] == '-') continue;if (s[i] >= '0' && s[i] <= '9') {sum = sum * x + s[i] - '0';} else {sum = sum * x + s[i] - 'A' + 10;}}while (sum) {char tmp = sum % y;sum /= y;if (tmp <= 9) {tmp += '0';} else {tmp = tmp - 10 + 'A';}res = tmp + res;}if (res.length() == 0) res = "0";if (s[0] == '-') res = '-' + res;return res;}string s;int k;int main() {freopen("input.txt", "r", stdin);while(cin>>s>>k) {cout<<transform(10, k, s)<<endl;}return 0;}


原创粉丝点击