HDU2031 进制转换

输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2
23 12
-4 3

Sample Output
111
1B
-11

#include 
using namespace std;

int main() {
    int n, m;
    while(scanf("%d%d", &n, &m) != EOF) {
        int k = 0, a[1010];
        if(n < 0) {
            printf("-");
            n = -n;
        }
        
        while(n) {
            a[k++] = n % m;
            n /= m;
        }
        for(int i = k - 1; i >= 0; i--) {
            if(a[i] > 9) {
                printf("%c", a[i] - 10 + 'A');
            }
            else
                printf("%d", a[i]);
        }
        printf("\n"); 
    }
    
    return 0;
} 

你可能感兴趣的:(HDU2031 进制转换)