杭电ACM2031:进制转换

来源:互联网 发布:西西里的美丽传说知乎 编辑:程序博客网 时间:2024/06/07 11:02
#include <iostream>using namespace std;int main(){    int N, R;    while (cin >> N >> R){        int a[10], i = 0, flag = 0;        int x = N, y;        //考虑负值        if (x < 0){            x = -x;            flag = 1;        }        //循环求余        while (x){            y = x / R;            a[i] = x%R;            x = y;            i++;        }        if (flag){            cout << '-';        }        //大于10的转换字符,前面i多加了1        for (i -= 1; i >= 0; i--){            if (a[i] == 10)                cout << 'A';            else if (a[i] == 11)                cout << 'B';            else if (a[i] == 12)                cout << 'C';            else if (a[i] == 13)                cout << 'D';            else if (a[i] == 14)                cout << 'E';            else if (a[i] == 15)                cout << 'F';            else cout << a[i];        }        cout << endl;    }    return 0;}
原创粉丝点击